gpt4 book ai didi

java - Android 改变颜色有延迟?

转载 作者:行者123 更新时间:2023-12-01 12:36:30 25 4
gpt4 key购买 nike

好吧,到目前为止,我一直在寻找某种方法来解决这个问题,我已经这样做了 5 天了,所以我会尽力解释它,我有这个应用程序,它运行良好我唯一困扰的是球的颜色变化。问题是我希望它每 5 秒改变一次,而不是不断随机改变而无需等待。例如,当应用程序打开时,应用程序中球的颜色为红色,持续约 5 秒,然后变为蓝色,再等待 5 秒,然后变为另一种颜色。我试图在代码中找出 onDraw 不断随机改变颜色而不等待的地方?我真的很感激任何帮助或建议,因为我已经从事这行有一段时间了。

          @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();
}

最佳答案

您无法控制 onDraw 被调用多少次,由 Android 决定。

相反,您可以运行一个单独的线程,该线程将每 5 秒更改一次颜色值,并让您的 onDraw 使用该值。

关于java - Android 改变颜色有延迟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25536289/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com