Как сделать анимацию сверху вниз в Android? - PullRequest
16 голосов
/ 13 октября 2011

Я могу дать анимацию снизу вверх при переходе к следующему занятию, но теперь, когда я нажимаю назад, я использую тот же код для анимации сверху вниз, но он всегда идет снизу вверх, поэтому мой вопрос как передать анимацию сверху вниз, когда я нажал кнопку «Назад» на устройстве Android?
Пожалуйста, найдите мой код ниже.

Я использую его при переходе с одного Activity на другой, используяIntent.

overridePendingTransition( R.anim.slide_in_up, R.anim.slide_out_up );

и xml - это: slide_in_up.xml

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromYDelta="100%p" android:toYDelta="0%p"
android:duration="@android:integer/config_longAnimTime"/>

, а slide_out_up.xml -

 <?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromYDelta="0%p" android:toYDelta="-100%p"
android:duration="@android:integer/config_longAnimTime"/>

Ответы [ 4 ]

19 голосов
/ 17 февраля 2012

Просто измените -100 на 100 (уберите минус) в slide_out_up.xml

@Override
public void onBackPressed() {
    finish();
    overridePendingTransition(R.anim.enter_anim, R.anim.exit_anim);
}
5 голосов
/ 16 июня 2013

Работал на моем планшете 4.0.3.

slide_out_up.xml :

<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <translate
        android:duration="@android:integer/config_mediumAnimTime"
        android:fromYDelta="0%p"
        android:toYDelta="-100%p" />

</set>

slide_in_up: xml :

<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <translate
        android:duration="@android:integer/config_mediumAnimTime"
        android:fromYDelta="-100%p"
        android:toYDelta="0%p" />

</set>

style.xml :

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <style name="DialogAnimationOutUpInUp">
        <item name="android:windowEnterAnimation">@anim/slide_in_up</item>
        <item name="android:windowExitAnimation">@anim/slide_out_up</item>
    </style>

</resources>
5 голосов
/ 30 марта 2012

Я только что реализовал это с двумя другими XML-файлами, имеющими

слайд вверх, от 100 до 0 и от 0 до -100

вниз от -100 до 0 и от 0 до 100

работает отлично.

4 голосов
/ 13 октября 2011

Вы можете переопределить поведение нажатия кнопки «Назад» и установить нужную анимацию, например, так:

@Override
public void onBackPressed() {
    finish();
    overridePendingTransition(R.anim.enter_anim, R.anim.exit_anim);
}

Измените анимацию на overridePendingTransition, чтобы она соответствовала тем, которые вы хотите.

...