Android Property Animation没有停止

时间:2018-10-09 10:17:29

标签: java android animation

我正在尝试为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);
            }

1 个答案:

答案 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);
            }