改变Activity启动时的默认动画
2016-03-26 10:25
190 查看
why
在开发中我们可能需要改变这一行为,一般基于2种理由:产品的spec这么要求的;
想自己控制这个行为,因为在Android设备上可能每个的这一默认行为都不一样,厂商可以很容易修改它,从而导致app在使用体验上不一致。
how
笔者所知道的主要有3种方式,下面我们就一个个来看看。通过theme/style来修改,代码如下:
![](http://images2015.cnblogs.com/blog/78322/201603/78322-20160326104707464-931563940.png)
修改windowAnimationStyle的方式
但是实际测试发现,不论是改activity的各种animation还是window的,效果都不是很好,可能在某些设备上ok的,但在另一些设备上又不好用,另外这种方式也不是很灵活,所以不推荐使用。
通过overridePendingTransition(int enterAnim, int exitAnim)
相关代码如下:
![](http://images2015.cnblogs.com/blog/78322/201603/78322-20160326104608745-1567795438.png)
overridePendingTransition的方式
笔者平时开发中用的是这种方法,目前还没遇到什么兼容性问题,work的很好,另外由于是写在代码中的也比较灵活,推荐。注意下实际中可能还需要在act theme中增加如下代码:
<item name="android:windowBackground">@android:color/transparent</item> <item name="android:windowIsTranslucent">true</item>
近日在看youtube视频时发现的写法,代码如下:
![](http://images2015.cnblogs.com/blog/78322/201603/78322-20160326104752714-2103777590.png)
通过特殊的Bundle来startActivity
感兴趣的同学可以观看下完整视频,还有些别的关于ActivityOptions的使用方式,另外需要注意下这种方式是API Level 16才引入的。
总结
以上是实际开发中可能用到的3种方式,但综合来看还是第2种方式最好用,也最灵活。注意,以上这些动画准确地讲应该是属于window animations。相关文章推荐
- 学习进度条——第四周
- ZooKeeper Java API简单示例
- 第五周项目2-游戏中的角色类(2)
- hdoj-2141-Can you find it?
- 第五周项目1:三角形类雏形(1)
- 大数乘法
- Android定时器
- 【AngularJS】——核心特性之指令
- HDU 3436 Queue-jumpers
- Source Insight 与IAR格式同步
- 周总结3.13
- 敏捷开发相关阅读
- CodeForces 652C Foe Pairs
- LeetCode 292. Nim Game
- hdoj 4135 Co-prime
- 成为更优秀程序员的关键:更多的阅读
- java,十进制转二进制
- cocoapod的下载安装解释
- 网络
- java Queue集合