因此我使用ScaleAnimation在游戏中缩短时间栏。当前级别完成后,我希望时间栏快速缩小到底部。所以我所做的是,如果30%的时间过去了,我认为30%的时间栏已经消失了。所以我刚刚开始了一个新的ScaleAnimation,它开始于70%的时间轴原始大小,假设这看起来像一个平滑的动画,当水平完成时加速。不幸的是,缩放比例不均匀。它在开始和结束时移动得更慢,在中间移动得更快。
所以现在我有三个选择:要么我弄清楚如何使ScaleAnimation以均匀的速度移动,要么我找出它移动速度的公式,这样我就可以确定当某个百分比有多大时动画片已播出。或者,我找到一个更聪明的方法来完成这个时间栏。建议? :)
干杯,
答案 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" />
尝试使用不同的插补器,看看哪种插补符合您的需求。