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>