- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在使用 setCompoundDrawables
在 EditText
的开头将 Drawable
作为文本实现,但我得到的结果不正确。我需要的是在输入时让我的文本在 Drawable
之后开始,但我得到的是这个
我有一个 EditText
在这样定义的布局中
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/control"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingLeft="4dp" >
<EditText
android:id="@+id/field"
style="@style/TextField"
android:inputType="number" />
</LinearLayout>
我必须在 EditText
的开头添加一段文本作为 Drawable
。所以我使用这个 class
Drawable
public class TextDrawable extends Drawable {
private final String text;
private final Paint paint;
public TextDrawable(String text) {
this.text = text;
this.paint = new Paint();
paint.setColor(Color.parseColor("#009999"));
paint.setTextSize(30);
paint.setAntiAlias(true);
paint.setTextAlign(Paint.Align.LEFT);
}
@Override
public void draw(Canvas canvas) {
canvas.drawText(text, 0, 6, paint);
}
@Override
public void setAlpha(int alpha) {
paint.setAlpha(alpha);
}
@Override
public void setColorFilter(ColorFilter cf) {
paint.setColorFilter(cf);
}
@Override
public int getOpacity() {
return PixelFormat.TRANSLUCENT;
}
}
我在这里实现它
final EditText field = (EditText) widget.findViewById(R.id.field);
field.setCompoundDrawables(new TextDrawable(this.label), null, null, null);
field.setText(this.value);
我做错了什么吗?
编辑
我尝试使用此方法 field.setCompoundDrawablesWithIntrinsicBounds(R.drawable.my_drawable, 0, 0, 0);
它有效,但显然我不能使用它,因为未定义可绘制对象作为资源。
最佳答案
因此在 Drawable 的构造函数中设置边界,或覆盖 getIntrinsicWidth(),您将需要检查哪个有效
关于android - setCompoundDrawables EditText 文字重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21449925/
我正在尝试使用 Compound Drawables 为 TextView 设置上划线。我在 XML 可绘制资源中创建了一个线条形状,如下所示:
我尝试将 right-drawable 设置为 TextView(在 ListView 的标题中)。我正在设置界限,但这没有帮助。 setDrawablesWithInstrinctBounds()
我有一个带有自定义列表项的 ListView 现在 Eclipse 使用 This tag and its children can be replaced
我正在使用 setCompoundDrawables 在 EditText 的开头将 Drawable 作为文本实现,但我得到的结果不正确。我需要的是在输入时让我的文本在 Drawable 之后开始,
我有一个带有 textview 和 imageview 的 appwidget 布局。 Lint 总是告诉我用复合 TextView 替换它。 问题是,如何使用 RemoteView 调用 setCo
所以很长一段时间以来,我一直在为特定的代码行而苦苦挣扎。在这里: btnForward.SetCompoundDrawablesWithIntrinsicBounds(0,0,Android.Reso
当我添加如下图标时: etComment = (EditText) findViewById(R.id.et_comment); Drawable img = getResources().getDr
在我调用 setCompoundDrawables 之后方法,复合 Drawable 没有显示出来.. Drawable myDrawable = getResources().getDrawable
我是一名优秀的程序员,十分优秀!