带插补器的无限ObjectAnimator ...如何仅加速初始启动?

时间:2015-01-27 18:52:19

标签: android animation android-animation interpolation objectanimator

我有一个具有无限重复模式的对象动画师。我想只在它第一次启动时加速它...而不是每次重复它

如何实现这一目标?

我的代码:

universeMovement1 = ObjectAnimator.ofFloat(universeImageView, "x", 0, sw);  
        universeMovement1.setDuration(UNIVERSE_MOVEMENT_TIME);
        universeMovement1.setRepeatCount(ObjectAnimator.INFINITE);
        universeMovement1.setRepeatMode(ObjectAnimator.RESTART);
        universeMovement1.setInterpolator(new AccelerateInterpolator());

2 个答案:

答案 0 :(得分:8)

使用onAnimationRepeat方法为动画添加一个侦听器,并将插值器设置回LinearInterpolator,或任何你想要的。因此,当它重复时,它将不再加速。

animation.addListener(new AnimatorListenerAdapter(){
        @Override
        public void onAnimationRepeat(Animator animation) {
            animation.setInterpolator(new LinearInterpolator());
        }
    });

答案 1 :(得分:0)

使用此:

objectAnimator.setInterpolator(new LinearInterpolator());