【发布时间】:2017-02-16 00:25:04
【问题描述】:
我创建了一个在单击按钮时开始的彩色背景动画(它会一遍又一遍地平滑地更改背景颜色)。 我的问题是我无法停止动画(如果我再次单击该按钮会提高动画速度)。我已经尝试创建一个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 代替
-
但是创建的程序几乎可以完美运行,应该有办法阻止它吗?
-
检查这个旧的* answer。
-
想想如何扩展这里提出的解决方案:*.com/a/10630973/5018798
标签: android animation android-animation imagebutton runnable