代码之家  ›  专栏  ›  技术社区  ›  pgsandstrom

使scaleAnimation均匀移动,或计算其移动方式

  •  0
  • pgsandstrom  · 技术社区  · 15 年前

    所以我在游戏中使用了一个scaleanimation来缩小时间条。当当前级别完成时,我希望时间条快速收缩到底部。所以我所做的是,如果30%的时间过去了,我假设30%的时间条已经消失了。所以我刚开始了一个新的scaleAnimation,它以70%的时间条原始大小开始,假设这看起来像一个平滑的动画,当级别完成时会加速。不幸的是,scaleAnimation的移动不均匀。它在起点和终点移动较慢,在中间速度更快。

    现在我有三个选择:要么我知道如何使缩放图像以均匀的速度移动,要么我知道它移动的速度的公式,这样我就可以精确地确定当某个百分比的动画播放时它有多大。或者,我找到了一个更聪明的方法来完成这个时间条。建议?:)

    干杯,

    1 回复  |  直到 9 年前
        1
  •  2
  •   stealthcopter    15 年前

    android用来创建tween动画的方法由您使用的插值器决定。从 android website :

    您可以确定如何进行转换 通过分配 内插器。Android包括几个 指定的内插子类 各种速度曲线:例如, AccelerateInterpolator告诉 从慢到快的转换 起来。每个都有一个属性值 可以在XML中应用。

    选择是( from android website again ):

    加速加速膨胀剂, 加速松节油, 预期松节油, 预计会有不同的颜色, 反弹插值器,循环插值器, 减速插补器, 线性打印机处理器, 超调定影器

    因此,从您描述的内容中,您可能希望选择如下所示的linerinterpolator:

       <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" />
    

    用不同的插补器进行实验,看看你认为哪一个最适合你的需要。