2014-04-01 45 views
0

我使用一个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次。

回答

0

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

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

所以你可以把你的动画放在一个会运行30次的for-loop中,并且使用一个变量,这个变量会在每次迭代中增加(对应于i++),这样会提高你的动画速度。