Как запустить несколько анимаций перевода последовательно? - PullRequest
15 голосов
/ 19 декабря 2010

Я хочу последовательно запустить три анимации перевода, показанные ниже.т.е. после завершения одной анимации перевода начинается вторая анимация перевода.Тем не менее, они запускаются одновременно.

Кроме того, эта анимация будет использоваться для overridePendingTransition () в качестве параметра.Итак, я должен решить эту проблему, только используя XML-код.

Кто-нибудь знает, что я должен делать?

<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:fromXDelta="-20%p"
    android:toXDelta="20%p"
    android:duration="1000" />

<translate
    android:fromXDelta="20%p"
    android:toXDelta="0"
    android:duration="1000" />
</set>

Ответы [ 2 ]

28 голосов
/ 19 декабря 2010

Используйте android: startOffset для задержки анимации.

На вашем примере это должно делать то, что вы хотите:

<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>
17 голосов
/ 19 декабря 2010

Решение Кевина может сработать, хотя я считаю, что время не совсем точное.

Другой вариант - использовать пару AnimationListener объектов, по одному на каждой из первых двух анимаций. Слушатель первой анимации, в onAnimationEnd(), запускает вторую анимацию. Слушатель для второй анимации, в onAnimationEnd(), запустит третью анимацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...