Я создал анимацию цветного фона, которая начинается при нажатии кнопки (она плавно меняет цвет фона снова и снова). Моя проблема в том, что я не могу остановить анимацию (если я снова нажму кнопку, она увеличит скорость анимации). Я уже пытался создать цикл while, но потом анимация больше не работала. Моя цель состоит в том, что анимация начинается, если я нажимаю изображение Btn, и если я его снова нажму, он должен остановиться.Как я могу остановить эту анимацию?
Код:
imageButton_info.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
// Handler and runnable to run the animation in devices sdk below honeycomb.
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);
}
});
использование ValueAnimator вместо –
Но созданная программа работает почти идеально, там должен быть способ, чтобы остановить его ? – Nick88
Проверьте этот старый stackoverflow [ответ] (http://stackoverflow.com/a/9458785/5156016). –