Activity的退出和進入效果

  看了android的源代碼和資源文件,終於明白如何去修改設置Dialog和Activity的進入和退出效果了。設置Dialog首先經過 getWindow()方法獲取它的窗口,而後經過getAttributes()方法得到window的 WindowManager.LayoutParams lp, lp有個公共屬性windowAnimations, 只要把要實現的animation的id賦值給它就能夠了。問題是這個animation應該怎麼寫呢,研究發現,窗口進入和退出的效果分別是經過 @android:windowEnterAnimation和@android:windowExitAnimation兩個item設定的,好比進入 時的anim是@anim/dialog_enter, 退出的是@anim/dialog_exit, 則聲明一個style爲:

<style name="mydialog">android

    <item name="@android:windowEnterAnimation">@anim/dialog_enter</item>web

   <item name="@android:windowExitAnimation">@anim/dialog_exit</item>post

</style>spa

而後把這個style的id傳給lp.windowAnimations就好了。orm

     Activity的進入和退出效果能夠經過 @android:activityOpenEnterAnimation,@android:activityOpenExitAnimation,@android:activityCloseEnterAnimation,@android:activityCloseExitAnimation 這幾個item設定,第一個表示新的activity建立進入效果,第2個表示activity尚未finish()下退出效果,第3個表示上一個 activity返回進入效果,第4個表示的是activity finish()以後退出效果...(好似有點亂了)。具體設置參考以下:blog

  <style name="myact">ci

      <item name="@android:activityOpenEnterAnimation">@anim/act_enter</item>資源

      <item name="@android:activityOpenExitAnimation">@anim/act_exit</item>get

      <item name="@android:activityCloseEnterAnimation">@anim/act_enter</item>animation

      <item name="@android:activityCloseExitAnimation">@anim/act_exit</item>

  </style>

   <style name="mytheme" parent="@android:style/Theme"> 

      <item name="@android:windowAnimationStyle">@style/myact</item>

  </style>

而後把mytheme這個style做爲Activity的theme就好了,還有一個辦法就是 經過Acitvity獲取它的window, 而後和設置dialog同樣進行設置,由於歸根究竟是設置Window的layoutparams裏的windowAnimations值。因此 Activity的進入和退出效果也能夠經過@android:windowEnterAnimation和 @android:windowExitAnimation這兩個item設定。

相關文章
相關標籤/搜索