如何在android中删除从Canvas中绘制的文本

时间:2012-07-25 09:04:49

标签: android canvas drawable

我想通过使用以下代码从我绘制的Canvas中删除文本。

   canvas.drawText(label, width / 4, height / 3, paint_text);

完成后,用户可以编辑该文本,以便在编辑之前从画布中删除已经绘制的文本并写入新文本。

有一件事我想说清楚,我用图像位图在画布上写文字。

有可能以任何其他方式吗?请帮我解决这个问题。

3 个答案:

答案 0 :(得分:1)

从canvas中删除文本的唯一方法是采取一个条件,如果条件不满足则不要绘制这些文本。通常我们使用画布继续绘制。

if(flag){
///draw text
}else{
//Do not draw
}

再次调用onDraw()方法以显示新的更改如果你在同一个线程或来自不同线程的postInvalidate(),则调用inValidate()

答案 1 :(得分:1)

我建议你每次编辑文本时重绘,这可以通过调用setText()方法中的invalidate()方法来完成。因此,让用户编辑文本,然后只需重绘画布:

public setText(String text)
{ 
     label = text;
     this.invalidate();
}

...
//inside your draw method
canvas.drawText(label, width / 4, height / 3, paint_text);
...

答案 2 :(得分:0)

使用invalidate();见下面的例子

@覆盖

File "C:\Python27\lib\site-packages\boto\s3\key.py", line 1726, in get_contents_to_filename
    os.remove(filename)
WindowsError: [Error 5] Access is denied: 'path/to/folder'

// invalidate可以删除然后重新创建另一个

    protected void onDraw(final Canvas canvas) {