如何编辑Canvas.drawText()绘制的文本?

时间:2015-03-13 17:09:00

标签: android android-canvas

我制作了一个Android应用程序,用户可以在其中写入位图。有一个EditText,用户在其中键入文本,TextWatcher监视此文本。使用Canvas.drawText()将文本写在位图上。当在EditText中输入文本时,这可以正常工作。

但是,当我尝试退格一些书面文本并写一些其他文本时,文本不会在位图上删除。相反,新文本只是在“已删除”文本上覆盖。

有什么方法可以解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

您可以存储Canvas.drawText显示的文本并显示该文本,如果您想更改它,只需使用setter设置新文本,然后使用以下方法更新Canvas:

设置新文字:

public void setText(String newText) {
    this.currentText = newText;
}

更新画布:

public void update() {
    this.invalidate();
}

将这两种方法都放入您的视图类中。

答案 1 :(得分:0)

当然,您可以重新绘制位图,然后重新绘制新文本。

但更简单的方法(假设你有一个统一的背景)是首先使用背景颜色在当前文本中绘制当前文本(所以擦除所有内容),然后绘制新文本。