Android 如何使用ObjectAnimator删除动画的慢端?
我有一个ObjectAnimator:Android 如何使用ObjectAnimator删除动画的慢端?,android,animation,android-animation,android-view,objectanimator,Android,Animation,Android Animation,Android View,Objectanimator,我有一个ObjectAnimator: cloudAnim2 = ObjectAnimator.ofFloat(cloud2ImageView, "x",500, 1000); cloudAnim2.setDuration(3000); cloudAnim2.setRepeatCount(ValueAnimator.INFINITE); cloudAnim2.setRepeatMode(ValueAnimator.RESTART); clo
cloudAnim2 = ObjectAnimator.ofFloat(cloud2ImageView, "x",500, 1000);
cloudAnim2.setDuration(3000);
cloudAnim2.setRepeatCount(ValueAnimator.INFINITE);
cloudAnim2.setRepeatMode(ValueAnimator.RESTART);
cloudAnim2.start();
cloudAnim2.addListener(new AnimatorListener() {
@Override
public void onAnimationCancel(Animator animation) {}
@Override
public void onAnimationEnd(Animator animation) {}
@Override
public void onAnimationRepeat(Animator animation) {}
@Override
public void onAnimationStart(Animator animation) {}
});
如您所见,云将从位置500开始,并将动画设置为位置1000,然后将重复动画
问题是动画在接近完成时变得越来越慢。我的意思是,运动的速度并不总是一样的
我希望速度保持不变。如何做到这一点
谢谢默认插值器是
加速加速插值器
,因此您需要手动将其设置为线性插值器
animation.setInterpolator(new LinearInterpolator());
当使用关键帧、PVH和ObjectAnimator.ofPropertyValuesHolder制作复杂的重复动画时,我得出了完全相同的结论。我一直认为ObjectAnimator将完全依赖于关键帧中设置的动画,但我真的很惊讶地看到AcceleratedAccelerateInterpolator作为默认值。您还可以将其设置为
animation.setInterpolator(null)代码>