好吧,到目前爲止,我一直在尋找一些方法來解決這個問題,我一直在這個像已經5天,所以我會嘗試解釋它儘可能最好我有這個應用程序工作正常的唯一我正在努力的是球的顏色變化。事情是我希望它每5秒改變一次,而不是等待不斷變化。例如,當應用程序打開應用程序中的球的顏色爲紅色5秒鐘,然後它變成藍色,等待另一個5秒鐘後再變爲另一種顏色。我試圖在代碼中找出OnDraw在不等待的情況下隨機更改顏色的情況?我真的很感謝任何幫助或建議,因爲我一直在這一段時間。Android延遲改變顏色?
@protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
ballBounds.set(ballX-ballRadius, ballY-ballRadius, ballX+ballRadius,ballY+ballRadius);
Handler handler = new Handler();
int rnd = (int)(Math.random() * 4);
switch(rnd){
case 0:handler.postDelayed(new Runnable(){
public void run(){
paint.setColor(Color.BLUE);
}
}, 3000);
break;
case 1: handler.postDelayed(new Runnable(){
public void run(){
paint.setColor(Color.RED);
}
}, 3000);
break;
case 2: handler.postDelayed(new Runnable(){
public void run(){
paint.setColor(Color.GREEN);
}
}, 3000);
break;
case 3:handler.postDelayed(new Runnable(){
public void run(){
paint.setColor(Color.YELLOW);
}
}, 3000);
break;
}
canvas.drawOval(ballBounds, paint);
update();
try{
Thread.sleep(20);
}catch(InterruptedException e){}
invalidate();
}
我只是把它全部放在一個線程中,從一個更新到另一個線程獲取增量時間並將其添加到一個int中。每當int達到5秒或更多時,球會切換顏色,並從int中減去5秒。 – vedi0boy 2014-08-27 21:40:39