android轉場動畫windowAnimation和ActivityAnimation的區別 css
顯而易見,window與Activity自己從名字上就知道不一樣,但對於項目開發中 windowAnimation和ActivityAnimation的區別必須心照不宣。 android
區別主要以下 app
1.windowAnimation包括 windowEnterAnimation 和 windowExitAnimation ;ActivityAnimation包含 android:activityOpenEnterAnimation, android:activityOpenExitAnimation , android:activityCloseEnterAnimation 和 android:activityCloseExitAnimation ide
2.在項目中WindowAnimation的控制權大於Activity的控制權,即在Activity轉場過程當中,若是同時設置了WindowAnimation和ActivityAnimation,那麼 可能(由於這種狀況很是多) 只會執行WindowAnimation 動畫
3.對於WindowAnimation的定義很簡單,在style.xml文件中只須要繼承Animation Style便可 spa
<style name="Animation" parent="@android:style/Animation"> <!--窗體進入動畫--> <item name="android:windowEnterAnimation">@anim/slide_left_enter</item> <!--窗體退出動畫--> <item name="android:windowExitAnimation">@anim/slide_right_exit</item> </style>
對於Activity,須要繼承Animation Activity Style code
<style name="FeelyouWindowAnimTheme" parent="@android:style/Animation.Activity"> <item name="android:activityOpenEnterAnimation">@android:anim/slide_in_left</item> <item name="android:activityOpenExitAnimation">@android:anim/slide_out_right</item> <item name="android:activityCloseEnterAnimation">@anim/push_right_in</item> <item name="android:activityCloseExitAnimation">@anim/push_left_out</item> </style>
當咱們從 A1 啓動 A2 時,A1 從屏幕上消失,這個動畫叫作 android:activityOpenExitAnimation 當咱們從 A1 啓動 A2 時,A2 出如今屏幕上,這個動畫叫作 android:activityOpenEnterAnimation 當咱們從 A2 退出回到 A1 時,A2 從屏幕上消失,這個叫作 android:activityCloseExitAnimation 當咱們從 A2 退出回到 A1 時,A1 出如今屏幕上,這個叫作 android:activityCloseEnterAnimation
從上述2中動畫的定義上來看,顯然ActivityAnimation更爲複雜,但這種複雜帶來的轉場效果很是好,能夠同時控制2個Activity的動畫,而不像WindowAnimation只能控制下一個Activity的窗體動畫。 orm
5.在開發中,窗體動畫也可使用 Activity. overridePendingTransition來設置,也能夠定義在主題中,但Activity只能使用在主題中 xml
<application android:name="test.view.weitop.BaseApplication" android:allowBackup="false" android:hardwareAccelerated="false" android:icon="@drawable/app_logo" android:label="@string/app_name" android:largeHeap="true" android:theme="@style/Theme.App" > </application>
6.對於比較追求界面美感的動畫,使用ActivityAnimation要好得多,所以對於通常開發使用windowAnimation便可,但對於追求用戶體驗,那麼直接使用Activity Animation 吧 繼承