让动画重复,同时加快每次重复?

时间:2014-04-01 04:57:55

标签: android xml animation

我使用XML动画来模拟垂直翻转的图像:

<scale
    android:duration="30"
    android:fillAfter="false"
    android:fromXScale="1.0"
    android:fromYScale="1.0"
    android:interpolator="@android:anim/accelerate_interpolator"
    android:repeatCount="30"
    android:repeatMode="reverse"
    android:startOffset="200"
    android:toXScale="0.0"
    android:toYScale="1.0" />

<translate
    android:duration="30"
    android:fromXDelta="0"
    android:interpolator="@android:anim/accelerate_interpolator"
    android:repeatCount="30"
    android:repeatMode="reverse"
    android:startOffset="200"
    android:toXDelta="50%" />

上面的动画基本上缩小然后放大并重复30次。我希望它能够随着每个新动画的发生而变得更快。我尝试使用@android:anim/accelerate_interpolator,但似乎该选项只能加快实际动画的速度,所以我只有同样节奏的动画发生了30次。

1 个答案:

答案 0 :(得分:0)

AFAIK,你只能通过Java而不是通过XML来实现这一点。

您需要在Java代码中创建翻译动画,并且您可以使用yourTranslation.setDuration(1000); int以毫秒为单位。

因此,您可以将动画置于将运行30次的for-loop中,并使用将在每次迭代时增加的变量(对应于i++),这样可以提高动画速度。

相关问题