-1

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

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使动画在其整个旅程中保持一致的速度?

谢谢!!

4

1 回答 1

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 ) 
          {
             ....
          } 
       } 
    } 
); 
于 2013-12-07T06:38:57.110 回答