我做了一个由三个AnimatorSet组成的ObjectAnimator,我想接着重复一遍。
<?xml version="1.0" encoding="utf-8"?>
<set
xmlns:android="http://schemas.android.com/apk/res/android"
android:ordering="sequentially">
<objectAnimator
android:propertyName="rotation"
android:duration="300"
android:valueFrom="0"
android:valueTo="5"
android:valueType="floatType"/>
<objectAnimator
android:propertyName="rotation"
android:duration="600"
android:valueFrom="5"
android:valueTo="-5"
android:valueType="floatType"/>
<objectAnimator
android:propertyName="rotation"
android:duration="300"
android:valueFrom="-5"
android:valueTo="0"
android:valueType="floatType"/>
</set>
但是如果我将CycleInterpolator设置为AnimatorSet,因为动画师将依次启动
在API级别11中添加的公共空setInterpolator (TimeInterpolator插值器) 为此TimeInterpolator的所有当前子动画设置AnimatorSet。
所以我尝试通过设置一个侦听器来重新启动AnimatorSet,但是它停止了几毫秒,重新启动AnimatorSet的效果是显而易见的。
a.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation)
{
animation.start();
}
});
我能做些什么来循环它(除了构建一个庞大的ObjectAnimators列表或者使用线程和处理程序编写我自己的动画)?
发布于 2013-07-05 16:05:57
解决这个特殊情况的方法是创建一个AnimatorSet,其中第一个项要旋转一半,第二个项要保持旋转。
<?xml version="1.0" encoding="utf-8"?>
<set
xmlns:android="http://schemas.android.com/apk/res/android"
android:ordering="sequentially">
<objectAnimator
android:propertyName="rotation"
android:duration="150"
android:valueFrom="0"
android:valueTo="-5"
android:valueType="floatType"/>
<objectAnimator
android:propertyName="rotation"
android:duration="300"
android:valueFrom="-5"
android:valueTo="5"
android:repeatMode="reverse"
android:repeatCount="infinite"
android:valueType="floatType"/>
</set>
发布于 2014-04-16 08:11:59
在迫切需要这个功能,原来有人已经找到了解决方案。
http://www.jefflinwood.com/2013/04/repeating-android-animations-with-animatorset/
所有的功劳都归原作者所有。
mAnimationSet.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
mAnimationSet.start();
}
});
mAnimationSet.start();
发布于 2013-07-05 15:45:59
您需要将重复模式设置为AnimationSet,请参见:
android:repeatMode
https://stackoverflow.com/questions/17492523
复制相似问题