2014-05-10 127 views
4

我刚刚查看了Twitter应用程序,它在从一个屏幕移动到另一个屏幕时似乎有一个很好的滑动转换。我试图在我的应用中获得相同的行为。如何使用动画从一个屏幕切换到另一个屏幕

目前我屏幕之间移动使用:

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

但这种方式有画面之间没有过渡。屏幕上弹出MyActivity

+0

可能的重复http://stackoverflow.com/questions/12092894/animated-transition-between-an-activity-and-another – Abdellah

回答

5

动画与绘图资源:

This tutorial可能会帮助你了解它是如何工作的。首先,您应该在/res/文件夹中创建一个名为anim的文件夹。然后,创建并投入它的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); 

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

您还可以自定义动画 “无论startActivity方法”,但在使用活动的生命周期:我的意思是当您将输入动画调用为onCreate()并将输出动画调用为onPause()时,就像Vine。这是关于这种功能的a great demo

+0

这工作正常。当我从第二项活动回到第一项活动时,情况如何。我这样做:setResult(RESULT_OK,mainIntent);完(); – Anthony

+0

@Anthony做同样的事情,或者在你回来的时候使用'onResume'方法放入第一个Activity,为前一个做一个自定义的动画和'onPause',就像Vine的例子一样。 – Fllo

3

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

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

+0

这工作正常。当我从第二项活动回到第一项活动时,情况如何。我这样做:'setResult(RESULT_OK,mainIntent); finish();' – Anthony

+0

调用完成后调用相同的片段。 – Swayam

相关问题