改变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

相关文章
相关标签/搜索