我有这个ObjectAnimator:

    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,然后将重复动画。

问题在于,随着动画接近完成,动画变得越来越慢。我的意思是,运动的速度并非始终相同。

我希望速度始终保持不变。如何才能做到这一点?

谢谢

最佳答案

默认的内插器是AccelerateDecelerateInterpolator,因此您需要将其手动设置为LinearInterpolator

animation.setInterpolator(new LinearInterpolator());

09-28 15:00