改變Activity啓動時的默認動畫

why

在開發中咱們可能須要改變這一行爲,通常基於2種理由:android

  1. 產品的spec這麼要求的;
  2. 想本身控制這個行爲,由於在Android設備上可能每一個的這一默認行爲都不同,廠商能夠很容易修改它,從而致使app在使用體驗上不一致。

how

筆者所知道的主要有3種方式,下面咱們就一個個來看看。ruby

  1. 經過theme/style來修改,代碼以下:app


                                       修改windowAnimationStyle的方式


    可是實際測試發現,不管是改activity的各類animation仍是window的,效果都不是很好,可能在某些設備上ok的,但在另外一些設備上又很差用,另外這種方式也不是很靈活,因此不推薦使用。ide

  2. 經過overridePendingTransition(int enterAnim, int exitAnim)
    相關代碼以下:測試


                      overridePendingTransition的方式


    筆者平時開發中用的是這種方法,目前還沒遇到什麼兼容性問題,work的很好,另外因爲是寫在代碼中的也比較靈活,推薦。注意下實際中可能還須要在act theme中增長以下代碼:動畫

    <item name="android:windowBackground">@android:color/transparent</item> <item name="android:windowIsTranslucent">true</item>
  3. 近日在看youtube視頻時發現的寫法,代碼以下:
       
                           經過特殊的Bundle來startActivity


感興趣的同窗能夠觀看下完整視頻,還有些別的關於ActivityOptions的使用方式,另外須要注意下這種方式是API Level 16才引入的。spa

總結

以上是實際開發中可能用到的3種方式,但綜合來看仍是第2種方式最好用,也最靈活。注意,以上這些動畫準確地講應該是屬於window animationscode

相關文章
相關標籤/搜索