重复使用没有文本标签的自定义View代码

时间:2015-07-17 18:52:15

标签: android

我通过扩展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布局文件。

1 个答案:

答案 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);