使用LinearInterpolator的android动画

时间:2013-12-07 06:26:29

标签: android animation linear-interpolation

我有一些点,即按钮,从屏幕的顶部到底部垂直制作动画。
我已经实现了以下内容:

spot.animate().x(x2).y(y2).scaleX(SCALE_X).scaleY(SCALE_Y).setDuration(animationTime).setListener
  (
     new AnimatorListenerAdapter() 
     {
        @Override
        public void onAnimationStart(Animator animation)
        {
            animators.add(animation);
        }
        public void onAnimationEnd(Animator animation)
        {
            animators.remove(animation);
            if (!gamePaused ) 
            {
               ....
            } 
        } 
     } 
  ); 

问题:

我发现这些按钮在开始时以加速的速度动画,在动画结束时减速。

如何使用LinearInterpolator修改代码,以使动画在整个旅程中具有统一的速度?

谢谢!

1 个答案:

答案 0 :(得分:1)

您是否尝试使用ViewPropertyAnimator类中的setInterpolator(TimeInterpolator interpolator)方法?所以你的代码看起来像是:

spot.animate().x(x2).y(y2).scaleX(SCALE_X).scaleY(SCALE_Y).setInterpolator(new LinearInterpolator()).setDuration(animationTime).setListener(
    new AnimatorListenerAdapter() 
    {
       @Override
       public void onAnimationStart(Animator animation)
       {
          animators.add(animation);
       } 

       public void onAnimationEnd(Animator animation)
       {
          animators.remove(animation);

          if (!gamePaused ) 
          {
             ....
          } 
       } 
    } 
);