android頁面切換效果


兩種方式:

  • 在activity的自定義主題中定義切換方式;
  • overridePendingTransition()方法

自定義主題

在項目的res/values/styles.xml中添加樣式

<style name="Activity.Theme"  parent="@android :style/Theme.NoTitleBar">  
    <item name="android:windowAnimationStyle">@style/anim_activity</item>  
</style>  
<style name="anim_activity"  parent="@android :style/Animation.Activity">  
    <item name="android:activityOpenEnterAnimation">@anim/activity_open_in_anim</item>  
    <item name="android:activityOpenExitAnimation">@anim/activity_open_out_anim</item>  
    <item name="android:activityCloseEnterAnimation">@anim/activity_close_in_anim</item>  
    <item name="android:activityCloseExitAnimation">@anim/activity_close_out_anim</item>  
</style>
現在假設有兩個Activity, A 和 B。 在A中可以啟動B. 同時,A,B的theme屬性均設置為上面定義的屬性。那么,以上動畫的發生時機如下:
(1)當A啟動B時,A退出,B進入,A退出時的動畫名稱為android:activityOpenExitAnimation,動畫文件為
R.anim.activity_open_out_anim. B進入時的動畫名稱為android:activityOpenEnterAnimation, 動畫文件為R.anim.activity_open_in_anim.
(2)當B結束時,B退出,A進入。B退出的動畫名稱為android:activityCloseExitAnimation, 動畫文件為R.anim.activity_close_out_anim.
A進入時的動畫名稱為android:activityCloseEnterAnimation, 動畫文件為R.anim.activity_close_in_anim.
關於動畫anim的具體寫法可以參考:http://my.oschina.net/u/1376187/blog/263331

 

overridePendingTransition()方法

public void overridePendingTransition (int enterAnim, int exitAnim)
其中:
enterAnim 定義Activity進入屏幕時的動畫
exitAnim 定義Activity退出屏幕時的動畫
overridePendingTransition 方法必須在startActivity()或者 finish()方法的后面。
Intent intent=new Intent(PathButtonActivity.this,MainActivity.class);
startActivity(intent);
//第一個參數為進入的目標activity動畫效果,第二個參數為退出的activity動畫
overridePendingTransition(R.anim.fade, R.anim.hold);

另:在broadcastReceiver或Service中啟動Activity的時候,就在需要啟動的那個activity的onCreate()方法中調用 overridePendingTransition()方法

 

參考:

http://blog.csdn.net/djun100/article/details/14525759

http://my.oschina.net/u/1376187/blog/263331

http://www.bubuko.com/infodetail-821616.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM