2014-05-10 160 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

相關問題