如何使用动画从一个屏幕转换到下一个屏幕

时间:2014-05-10 13:25:55

标签: android android-animation android-transitions

我只是看了一下twitter应用程序,它似乎在从一个屏幕移动到另一个屏幕时有一个很好的滑动过渡。我试图在我的应用中获得相同的行为。

目前我在屏幕之间移动:

startActivityForResult(new Intent(getApplicationContext(), MyActivity.class), 1);

但这种方式屏幕之间没有过渡。 MyActivity只会弹出屏幕。

2 个答案:

答案 0 :(得分:5)

有drawables的动画:

This tutorial可能会帮助您了解其工作原理。首先,您应该在anim文件夹中创建名为/res/的文件夹。然后,创建并放入drawables,它将用于制作过渡动画,如下所示:

anim_left_to_right.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate 
        android:fromXDelta="-100%"
        android:toXDelta="0%"
        android:duration="@android:integer/config_mediumAnimTime" />
</set>  

anim_right_to_left.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate 
        android:fromXDelta="0%"
        android:toXDelta="-100%"
        android:duration="@android:integer/config_mediumAnimTime" />
</set>  

然后,使用overridePendingTransition()方法调用drawable并将它们应用于 startActivity()(或 startActivityForResult())方法:

startActivityForResult(new Intent(getApplicationContext(), MyActivity.class), 1);
overridePendingTransition(anim_left_to_right, anim_right_to_left);

相对于生命周期的自定义动画:

您也可以制作自定义动画,&#34;无论使用startActivity方法&#34;还是使用活动的生命周期:当您将输入动画调用到Vine时,我的意思是onCreate()将动画输出到onPause()。关于此类功能,这是a great demo

答案 1 :(得分:3)

在调用startActivity()后调用 overridePendingTransition(entry_anim, exit_anim)

您可以通过xml指定进入和退出动画。