我希望这个动画在30秒后重复。我可以使用计时器并每隔30秒将动画应用到视图中,但我想知道是否可以在xml中执行它而不必使用计时器
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false" >
<!-- contract -->
<scale
android:duration="400"
android:fillAfter="false"
android:fromXScale="0.0"
android:fromYScale="0.0"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:pivotX="50%"
android:pivotY="50%"
android:toXScale="1.5"
android:toYScale="1.5" />
<set android:interpolator="@android:anim/decelerate_interpolator" >
<!-- expand -->
<scale
android:duration="400"
android:fillBefore="false"
android:fromXScale="1.2"
android:fromYScale="1.2"
android:pivotX="50%"
android:pivotY="50%"
android:startOffset="400"
android:toXScale="0.8"
android:toYScale="0.8" />
<!-- spin -->
<rotate
android:duration="400"
android:fromDegrees="0"
android:pivotX="50%"
android:pivotY="50%"
android:startOffset="700"
android:toDegrees="360"
android:toYScale="0.0" />
</set>
<!-- wobble -->
<set
android:fillAfter="true"
android:interpolator="@android:anim/linear_interpolator" >
<rotate
xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="200"
android:fromDegrees="0"
android:pivotX="10%"
android:pivotY="50%"
android:repeatCount="30"
android:repeatMode="reverse"
android:toDegrees="5" />
</set>
</set>
答案 0 :(得分:0)
据我所知,在xml中无法做到这一点。此外,您不应该使用计时器,因为它在后台线程中运行代码。你需要的是android native
Handler#postDelayed()
并且不要忘记清除动画。