我通过扩展TextView小部件创建了一个自定义视图。 它基本上是一个圆形视图,圆圈上方有一些文本作为背景。
现在我需要再次查看相同的视图,但没有文字。有没有办法可以重用相同的代码 - 而不是仅仅复制/粘贴代码来创建没有文本的View类?
带有文本的onDraw代码是:
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawCircle(150, 150, 150, paintBG);
canvas.drawText("Some Text", 0, 150, textPaint);
}
编辑: 我需要的是某种if语句,其中drawtext发生。 如果我的视图需要文本标签,那么使用drawText。我只是不知道条件应该是什么,因为我将代码用于我的xml布局文件。
答案 0 :(得分:0)
我建议您编写一个自定义的Drawable类。然后,您可以在运行时创建一个实例,并将其设置为您喜欢的任何视图的背景。
public class MyDrawable extends Drawable {
boolean drawText;
// other members, constructors, etc
@Override
public void draw(Canvas canvas) {
canvas.drawCircle(150, 150, 150, paintBG);
if (drawText) {
canvas.drawText("Some Text", 0, 150, textPaint);
}
}
// other methods
}
MyDrawable d = new MyDrawable();
mTextView.setBackground(d);