兩種方式:
自定義主題:
在項(xiàng)目的res/values/styles.xml中添加樣式
1 2 3 | <style name= "Activity.Theme" parent= "@android :style/Theme.NoTitleBar" > <item name= "android:windowAnimationStyle" > @style /anim_activity</item> </style> |
1 2 3 4 5 6 | <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> |
1 2 3 4 | 現(xiàn)在假設(shè)有兩個(gè)Activity, A 和 B。 在A中可以啟動(dòng)B. 同時(shí),A,B的theme屬性均設(shè)置為上面定義的屬性。那么,以上動(dòng)畫(huà)的發(fā)生時(shí)機(jī)如下: ( 1 )當(dāng)A啟動(dòng)B時(shí),A退出,B進(jìn)入,A退出時(shí)的動(dòng)畫(huà)名稱為android:activityOpenExitAnimation,動(dòng)畫(huà)文件為 R.anim.activity_open_out_anim. B進(jìn)入時(shí)的動(dòng)畫(huà)名稱為android:activityOpenEnterAnimation, 動(dòng)畫(huà)文件為R.anim.activity_open_in_anim. ( 2 )當(dāng)B結(jié)束時(shí),B退出,A進(jìn)入。B退出的動(dòng)畫(huà)名稱為android:activityCloseExitAnimation, 動(dòng)畫(huà)文件為R.anim.activity_close_out_anim.<br> A進(jìn)入時(shí)的動(dòng)畫(huà)名稱為android:activityCloseEnterAnimation, 動(dòng)畫(huà)文件為R.anim.activity_close_in_anim. |
1 | 關(guān)于動(dòng)畫(huà)anim的具體寫(xiě)法可以參考:http: //my.oschina.net/u/1376187/blog/263331 |
overridePendingTransition()方法
1 2 3 4 5 | public void overridePendingTransition ( int enterAnim, int exitAnim) 其中: enterAnim 定義Activity進(jìn)入屏幕時(shí)的動(dòng)畫(huà) exitAnim 定義Activity退出屏幕時(shí)的動(dòng)畫(huà) overridePendingTransition 方法必須在startActivity()或者 finish()方法的后面。 |
1 2 3 4 | Intent intent= new Intent(PathButtonActivity. this ,MainActivity. class ); startActivity(intent); //第一個(gè)參數(shù)為進(jìn)入的目標(biāo)activity動(dòng)畫(huà)效果,第二個(gè)參數(shù)為退出的activity動(dòng)畫(huà) overridePendingTransition(R.anim.fade, R.anim.hold); |
另:在broadcastReceiver或Service中啟動(dòng)Activity的時(shí)候,就在需要啟動(dòng)的那個(gè)activity的onCreate()方法中調(diào)用 overridePendingTransition()方法
參考:
http://blog.csdn.net/djun100/article/details/14525759
http://my.oschina.net/u/1376187/blog/263331
http://www.bubuko.com/infodetail-821616.html
聯(lián)系客服