我实现一个Drawable
在我开始为文本EditText
使用setCompoundDrawables
,但我得到不正确的结果.我需要的是我的文字Drawable
在打字之后开始,而不是我得到这个
我有一个EditText
像这样定义的布局
我必须Drawable
在一开头添加一段文字EditText
.所以我将Text转换为a Drawable
使用它class
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没有被定义为资源.