如何在Android中提供自上而下的动画?

时间:2011-10-13 12:22:40

标签: android android-animation android-transitions

当我进入下一个活动时,我能够给出自下而上的动画,但现在当我按下时,我使用相同的代码从上到下动画给出动画,但它总是自下而上,所以我的问题是< strong>当我在Android设备上按下按钮时如何从上到下给动画?
请在下面找到我的代码。

我在使用ActivityIntent转换到另一个overridePendingTransition( R.anim.slide_in_up, R.anim.slide_out_up ); 时使用它。

<?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"/>

和xml是:slide_in_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"/>

和slide_out_up.xml是

{{1}}

4 个答案:

答案 0 :(得分:19)

只需在slide_out_up.xml中更改-100到100(删除减号)

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

答案 1 :(得分:5)

我刚用另外两个xml文件实现了它,比如

向上滑动,100到0和0到-100

向下滑动-100到0和0到100

它完美无缺。

答案 2 :(得分:5)

使用我的平板电脑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>

答案 3 :(得分:4)

您可以覆盖后退按钮按下行为并设置所需的相应动画,如下所示:

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

更改overridePendingTransition的动画,使其适合您想要的动画。