我想創建一個平滑更改背景顏色的小動畫。我的問題是,它只顯示最後一個值(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