2011-08-02 21 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