Я пытаюсь создать небольшую анимацию, которая плавно меняет цвет фона. Моя проблема в том, что она отображает только последнее значение (100, это означает, что он напрямую переходит на красный фон). Я не знаю, почему моя создан в то время как петля не актуализировать каждое значение (так что это шоу будет плавно анимация цвета)While loop: Change Background color
Нового кода (который почти работает, но ИКА, как остановить анимацию)
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());
}
Благодарим вас за ответ заранее ...
Спасибо за этот ответ, я попытался Гейб и ваше предложение, и она работала почти идеально. Единственная проблема, с которой я столкнулся сейчас, это то, что я не знаю, как остановить анимацию (я использую кнопку изображения). Знаете ли вы, как я могу остановить его при нажатии (я уже пытался создать цикл while, но анимация не работала с ним)? – Nick88
Я пробовал это, к сожалению, это не сработало, но спасибо за вашу поддержку. – Nick88