如何将TextView绘制到Canvas中,然后稍后更改文本

时间:2015-07-17 02:38:06

标签: android canvas bitmap

我有一个画布,我在画布上写了一个textView。问题是:稍后我需要更改TextView中的文本,但我不知道如何更新画布(删除前一个文本并插入新文本)。我无法使用setColor(Color.Black)清除,因为我在Canvas中有一个图像。

代码:

       LinearLayout layout = new LinearLayout(context);

        TextView textView = new TextView(context);
        textView.setVisibility(View.VISIBLE);
        textView.setText("Hello world");
        layout.addView(textView);

        layout.measure(canvas.getWidth(), canvas.getHeight());
        layout.layout(0, 0, canvas.getWidth(), canvas.getHeight());

        layout.draw(mCanvas);

        textView.setText("ABC");

        textView.invalidate();
        textView.postInvalidate();
        layout.invalidate();
        layout.postInvalidate();

1 个答案:

答案 0 :(得分:0)

在自定义视图中使用这样的setter。

public synchronized void setText(String text) {
    this.text = text;
    postInvalidate();
}

如果您没有使用自定义视图,则应致电view.postInvalidate()