2011-08-02 20 views
2

我有一个函数我没有正确地做或理解Android上的双缓冲?

​​

其中涂料(画布)调用一串该绘制图形和文本等功能,例如

canvas.drawText("Time="+myRecord.getMyTime(), 100, 100, paint); 

时遇到的问题是,图形而且两者都应该不断变化的文本不会被擦除,而是会继续自己画图。我的整个画布不应该每次都重绘,因为这是双缓冲如何与lock()和unlock()一起使用的?我没有正确理解这个吗?我该如何做到这一点?

+0

@mibollma问题解决了!谢谢! – Kalina

+0

不要在标题中标记[已解决]。这不是论坛什么的。发布答案并接受它。或者让@mibollma重新发布评论作为答案,以便您可以接受它。 – BalusC

回答

2

您需要使用Canvas.drawColor()在lockCanvas()之后自己清除Canvas。

这可能是相关的也:

表面的内容从未unlockCanvas() 和lockCanvas(),因为这个原因,表面积 内的每个像素必须是书面之间保留 。此规则的唯一例外是指定了一个脏 矩形,在这种情况下,将保留非脏像素 。

Source