繁体   English   中英

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

[英]How to edit text drawn by Canvas.drawText()?

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

但是,当我尝试退格一些写入的文本并写入其他一些文本时,该文本不会在位图上删除。 而是将新文本简单地覆盖在“已删除”文本上。

有什么办法解决这个问题?

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

设置新文本:

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

更新画布:

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

只需将这两种方法都放入您的视图类即可。

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

但是,一种更简单的方法(假设您的背景是统一的)是先使用背景色在相同位置绘制当前文本(这样就删除所有内容),然后绘制新文本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM