I want to run the three translate animations shown below sequentially. i.e. after one translate animation ends, the second translate animation starts. However, they run conc
Kevin's solution may work, though I have found the timing to be somewhat inaccurate.
Another option is to use a pair of AnimationListener
objects, one attached to each of the first two Animations. The listener for the first animation, in onAnimationEnd()
, would start the second animation. The listener for the second animation, in onAnimationEnd()
, would start the third animation.
Use android:startOffset to delay animations.
With your example, this should do what you want:
<set
xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator"
android:fillAfter="true">
<translate
android:fromXDelta="100%p"
android:toXDelta="-20%p"
android:duration="1000" />
<translate
android:startOffset="1000"
android:fromXDelta="-20%p"
android:toXDelta="20%p"
android:duration="1000" />
<translate
android:startOffset="2000"
android:fromXDelta="20%p"
android:toXDelta="0"
android:duration="1000" />
</set>