Android 轉場動畫 windowAnimation和ActivityAnimation的區別

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 吧 繼承


相關文章
相關標籤/搜索