我想创建一个平滑更改背景颜色的小动画。我的问题是,它只显示最后一个值(100,这意味着它直接进入红色背景)。我不知道为什么我创建while循环不具体化的每一个值(所以它会显示一个平稳彩色动画)虽然循环:更改背景颜色
新代码(几乎工作,但IDK如何停止动画)
imageButton_info.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
final Handler handler = new Handler();
Runnable ChangeBackgroundRunnable = new Runnable() {
@Override
public void run() {
number++;
float[] hsvColor = {0, 1, 1};
hsvColor[0] = 360f * number/100;
color.setBackgroundColor(Color.HSVToColor(hsvColor));
handler.postDelayed(this, 80);
if (number >=100)
number = 1;
}
};
number = 0;
handler.removeCallbacks(ChangeBackgroundRunnable);
handler.postDelayed(ChangeBackgroundRunnable, 0);
}
});
代码:
public void onClick(View v){
try {
while (number<=100) {
number=number+1;
float[] hsvColor = {0, 1, 1};
hsvColor[0] = 360f * number/100;
color.setBackgroundColor(Color.HSVToColor(hsvColor));
Thread.sleep(10);
}
}catch(Exception e){
//New exception
Log.e("Camera Error!",e.getMessage());
}
感谢您提前你的答案......
感谢这个答案,我都试过Gabe的和您的建议,它的工作近乎完美。我现在唯一的问题是,我不知道如何停止动画(我正在使用图像按钮)。你知道我怎么可以阻止它点击(我已经尝试创建一个while循环,但动画不起作用)? – Nick88
我很遗憾地尝试过它不起作用,但是感谢您的支持。 – Nick88