2012-02-07 6 views
2

В этом упражнении я пытаюсь выполнить пользовательский переход между двумя Activities. Я хочу, чтобы текущий Activity уменьшался примерно до половины его размера, а затем значения x выполняют масштабное преобразование, поэтому он выглядит так, как если бы Activity вращался в 3-D. Затем, после окончания анимации, я хочу, чтобы в новом Activity одна и та же анимация была в противоположном порядке.Активность для перехода на Android-активность

Мой вопрос: как я могу сделать паузу в анимации, чтобы анимация для ввода Activity не начиналась до тех пор, пока закончившаяся анимация не закончилась? Я должен использовать метод overridePendingTransition, поэтому все переданные анимации должны быть int значениями от R.anim. В противном случае было бы легко использовать AnimationListener. Но я не могу придумать, как это сделать.

Любые идеи?

EDIT: С тех пор я понял, что вы можете проверить ответы!

+1

Поскольку вы нашли свой собственный ответ, переместите свое редактирование в ответ и затем Примите его. Это очень полезно для вас самих и для сообщества. :) –

ответ

4

Для тех, кто пытается достичь того же, я понял это. Секрет заключается в использовании android: startOffset в XML. Код выглядит следующим образом:

выход анимации:

<set xmlns:android="http://schemas.android.com/apk/res/android"> 
    <scale 
     android:fromXScale="1.0" android:toXScale="0.8" 
     android:fromYScale="1.0" android:toYScale="0.8" 
     android:pivotX="50%p" android:pivotY="50%p" 
     android:interpolator="@android:anim/accelerate_interpolator" 
     android:duration="100" /> 
    <scale 
     android:fromXScale="1.0" android:toXScale="0.0" 
     android:fromYScale="1.0" android:toYScale="1.0" 
     android:pivotX="50%p" android:pivotY="50%p" 
     android:interpolator="@android:anim/accelerate_interpolator" 
     android:duration="150" 
     android:startOffset="100" /> 
</set> 

вход анимация:

<set xmlns:android="http://schemas.android.com/apk/res/android"> 
    <scale 
     android:fromXScale="0.0" android:toXScale="1.0" 
     android:fromYScale="1.0" android:toYScale="1.0" 
     android:pivotX="50%p" android:pivotY="50%p" 
     android:interpolator="@android:anim/accelerate_interpolator" 
     android:duration="150" 
     android:startOffset="250" /> 

    <scale 
     android:fromXScale="0.8" android:toXScale="1.0" 
     android:fromYScale="0.8" android:toYScale="1.0" 
     android:pivotX="50%p" android:pivotY="50%p" 
     android:interpolator="@android:anim/accelerate_interpolator" 
     android:duration="100" 
     android:startOffset="400" /> 
</set> 

Затем код Java:

startActivity(new Intent(this, YourNextActivity.class)); 
overridePendingTransition(R.anim.enter_anim, R.anim.exit_anim); 

Это создает гладкую, хорошо -timed, что заставляет его выглядеть так, как будто следующее созданное действие находится на «обратной» текущей активности.

Смежные вопросы