2013-07-12 46 views
0

我有一個customview和它的背景顏色必須每隔一兩秒鐘兩種顏色之間變化,例如黑色和white.I可以使用canvas.drawARGB()invalidate()以填補任何色系帆布有兩個固定顏色的畫布可以因此我猜如果我有兩個畫布,第一個是白色和第二個黑色,我改變整個畫布在onDraw()它可能比調用canvas.drawARGB()更好。是我的猜測真的嗎?有可能嗎?更改畫布的風景?

備註: 我的目的是爲了避免撥打canvas.drawARGB()canvas.setBitmap()或其他東西。

+0

不,這是不可能的,你必須使用drawARGB() – pskink

回答

0

我不認爲改變了整個畫布可能還是明智的,因爲在OnDraw的方法Canvas對象是一切準備就緒的視圖,並創建一個副本可能是低效率所需要的開銷準備。但是,您可以使用setBackgroundColor在調用ondraw方法之前應用顏色,請參見here圖紙段落。我認爲這是正確的方法,因爲你讓android做背景假設它會使用最快和更高效的方法。

希望這有助於...

0

你應該改變你的噴漆的對象的顏色和噴漆的對象傳遞給你的畫布對象。

1

如果你想改變背景顏色,我認爲一個更好的和更簡單的方法是呈現here在接受的答案:

v.setBackgroundColor(0xFF00FF00); // Where v is your view 

或者:

v.setBackgroundColor(Color.GREEN); // Where v is your view 

這應該會更快比使用特定顏色填充Canvas View,然後調用invalidate()