Как дать сверху вниз анимацию в Android?

Я могу дать снизу вверх анимацию, когда я перехожу к следующему действию, но теперь, когда я нажал назад, я использую тот же код для анимации сверху вниз анимации, но он всегда идет снизу вверх, так что мой вопрос как дать анимацию сверху вниз, когда я нажал кнопку назад на устройстве 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 ответов


просто измените -100 на 100 (удалите минус) в slide_out_up.в XML

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

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

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

сползите вниз -100 до 0 и 0 до 100

Она работает идеально.


работала на моем планшете 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>

стиль.в 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>

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

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

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