我正在尝试为Android中的CardView动态创建闪烁效果。这是我用来创建动画师的代码
stove1Animator = ObjectAnimator.ofInt(stove1CardView, "backgroundColor", Color.WHITE, Color.YELLOW,
Color.WHITE);
stove1Animator.setDuration(1500);
stove1Animator.setEvaluator(new ArgbEvaluator());
stove1Animator.setRepeatMode(ValueAnimator.REVERSE);
stove1Animator.setRepeatCount(Animation.INFINITE);
当我需要的时候,我将通过start()调用开始动画。我在停止闪烁效果时遇到问题。动画监听器没有被调用,所以我试图在postHandler()中更改颜色。这是用于取消动画并设置不起作用的背景颜色的代码。
if (stove1Animator.isRunning()) {
stove1Animator.cancel();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
setColor("S1",helper.getStringValueForPref("S1_COLOR"));
}
}, 2000);
}
答案 0 :(得分:0)
使用此按钮清除动画
stove1Animator.clearAnimation()
解决方案2:
if (stove1Animator.isRunning()) {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
setColor("S1",helper.getStringValueForPref("S1_COLOR"));
stove1Animator.removeAllListeners();
stove1Animator.end();
stove1Animator.cancel();
}
}, 2000);
}