0
我試圖做一個簡單的應用程序,每隔500ms更改畫布背景色,在畫布上創建n個圓,每個圓都以x毫秒爲半徑變化半徑。如何在畫布上繪製多個繪圖而不繪製同步
我該怎麼做,如果我的睡眠時間在「run()」方法是由cavas顏色更改決定的。我應該爲每個圈子創建一個新線程並同步所有圈子嗎?
Cleary我還需要考慮到在畫布背景顏色變化之後必須繪製圓,因爲我會冒背景圖層被圈入的圓圈不可見的風險。
對於這種工作,我應該考慮使用opengl?
這是我的run():
public void run() {
int i=0;
Paint paint= new Paint();
paint.setColor(Color.RED);
Log.d("ZR", "in running");
while(running){
try {
Thread.sleep(500);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(!holder.getSurface().isValid())
continue;
Canvas canvas = holder.lockCanvas();
canvas.drawRGB(rand.nextInt(255), rand.nextInt(255), rand.nextInt(255));
canvas.drawCircle(canvas.getWidth()/2, canvas.getHeight()/2, 100, paint);
holder.unlockCanvasAndPost(canvas);
Log.d("ZR", "in running: "+i +" count: "+j);
i++;
j++;
}
}