I am trying to make an animation in my Activity, to be repeated infinite times. I have already tried it in XML file with repeatCount and repeatMode attributes, but it doesn't work. The thing is that myanimation.xml file is constructed of a set of different animations.
My XML file for that animation
<set
xmlns:android="http://schemas.android.com/apk/res/android"
android:fillAfter="true"
android:interpolator="@android:anim/bounce_interpolator"
>
<translate
android:startOffset="1000"
android:fillAfter="true"
android:fromXDelta="10"
android:fromYDelta="10"
android:toXDelta="50"
android:toYDelta="-200"
android:duration="1800"
android:interpolator="@android:anim/bounce_interpolator"
/>
<translate
android:fillAfter="true"
android:startOffset="2000"
android:fromYDelta="10"
android:fromXDelta="10"
android:toXDelta="100"
android:toYDelta="270"
android:duration="1800"
android:interpolator="@android:anim/bounce_interpolator" />
<translate
android:fillAfter="true"
android:startOffset="3000"
android:fromYDelta="10"
android:fromXDelta="10"
android:toXDelta="130"
android:toYDelta="-270"
android:duration="1800"
android:interpolator="@android:anim/bounce_interpolator"
/>
<translate
android:fillAfter="true"
android:startOffset="4000"
android:fromYDelta="10"
android:fromXDelta="10"
android:toXDelta="140"
android:toYDelta="270"
android:duration="1800"
android:interpolator="@android:anim/bounce_interpolator"
/>
<translate
android:fillAfter="true"
android:startOffset="5000"
android:fromYDelta="10"
android:fromXDelta="10"
android:toXDelta="90"
android:toYDelta="-270"
android:duration="1800"
android:interpolator="@android:anim/bounce_interpolator"
/>
And in onCreate() I have animation tied to a ImageView object.
ImageView ball = (ImageView) findViewById(R.id.animationBall);
final Animation myAnimation = AnimationUtils.loadAnimation(this, R.anim.ball_animation);
ball.startAnimation(myAnimation);
The animation works fine, the only thing is that it doesn't want to repeat itself, even if I set the setRepeatMode() or setRepeatCount() methods.
For what its worth, setRepeatMode() and setRepeatCount() have to be set on the Animation objects, and not on the AnimationSet object. That's potentially a mistake you may have made.
So either call those methods on the Animation objects or add those attributes to the XML of the translate schema.
Another approach is to set an endlessly repeating animation as follows:
mAnimationSet.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
mAnimationSet.start();
}
});
mAnimationSet.start();
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With