如何在Android上重复旋转动画时消除延迟?

时间:2011-12-27 19:52:57

标签: android android-animation rotateanimation

我在XML中构建了RotateAnimation,使用AnimationUtils加载它并将其设置为ImageView。我面临的问题是,当图像在一轮之后回到其初始位置时,而不是直接进入下一轮,那里有一个小的超时,就像滞后一样。

是否有任何解决方案可以删除此超时?

您可以在下面找到动画的xml:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
    <rotate
        android:interpolator="@android:anim/linear_interpolator"
        android:duration="1800"
        android:fromDegrees="0"
        android:pivotX="50%"
        android:pivotY="50%"
        android:repeatCount="infinite"
        android:toDegrees="360"/>
</set>

提前致谢!

2 个答案:

答案 0 :(得分:30)

您需要将linear_interpolator放在集合上。

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" 
    android:interpolator="@android:anim/linear_interpolator">
    <rotate
        android:duration="1800"
        android:fromDegrees="0"
        android:pivotX="50%"
        android:pivotY="50%"
        android:repeatCount="infinite"
        android:toDegrees="360"/>
</set>

答案 1 :(得分:0)

我最终根据需要将android:toDegrees增加到360以上,例如3600。旋转现在很顺畅。