使ScaleAnimation均匀移动,或弄清楚它是如何移动的

时间:2010-08-19 08:09:24

标签: android animation

因此我使用ScaleAnimation在游戏中缩短时间栏。当前级别完成后,我希望时间栏快速缩小到底部。所以我所做的是,如果30%的时间过去了,我认为30%的时间栏已经消失了。所以我刚刚开始了一个新的ScaleAnimation,它开始于70%的时间轴原始大小,假设这看起来像一个平滑的动画,当水平完成时加速。不幸的是,缩放比例不均匀。它在开始和结束时移动得更慢,在中间移动得更快。

所以现在我有三个选择:要么我弄清楚如何使ScaleAnimation以均匀的速度移动,要么我找出它移动速度的公式,这样我就可以确定当某个百分比有多大时动画片已播出。或者,我找到一个更聪明的方法来完成这个时间栏。建议? :)

干杯,

1 个答案:

答案 0 :(得分:2)

android用于创建补间动画的方法取决于您使用的插补器。来自android website

  

您可以确定如何进行转换   随着时间的推移通过分配一个   插补。 Android包括几个   指定的插值子类   各种速度曲线:例如,   AccelerateInterpolator告诉一个   转型开始缓慢和速度   起来。每个都有一个属性值   可以在XML中应用。

选项是(from android website again):

  

AccelerateDecelerateInterpolator,   AccelerateInterpolator,   AnticipateInterpolator,   AnticipateOvershootInterpolator,   BounceInterpolator,CycleInterpolator,   DecelerateInterpolator,   LinearInterpolator,   OvershootInterpolator

因此,根据您的描述,您可能希望选择LinearInterpolator,它看起来如下所示:

   <scale
          android:interpolator="@android:anim/linear_interpolator"
          android:fromXScale="1.0"
          android:toXScale="1.4"
          android:fromYScale="1.0"
          android:toYScale="0.6"
          android:pivotX="50%"
          android:pivotY="50%"
          android:fillAfter="false"
          android:duration="700" />

尝试使用不同的插补器,看看哪种插补符合您的需求。