我制作了一个Android应用程序,用户可以在其中写入位图。有一个EditText,用户在其中键入文本,TextWatcher监视此文本。使用Canvas.drawText()
将文本写在位图上。当在EditText中输入文本时,这可以正常工作。
但是,当我尝试退格一些书面文本并写一些其他文本时,文本不会在位图上删除。相反,新文本只是在“已删除”文本上覆盖。
有什么方法可以解决这个问题吗?
答案 0 :(得分:0)
您可以存储Canvas.drawText显示的文本并显示该文本,如果您想更改它,只需使用setter设置新文本,然后使用以下方法更新Canvas:
设置新文字:
public void setText(String newText) {
this.currentText = newText;
}
更新画布:
public void update() {
this.invalidate();
}
将这两种方法都放入您的视图类中。
答案 1 :(得分:0)
当然,您可以重新绘制位图,然后重新绘制新文本。
但更简单的方法(假设你有一个统一的背景)是首先使用背景颜色在当前文本中绘制当前文本(所以擦除所有内容),然后绘制新文本。