why

在开发中我们可能需要改变这一行为,一般基于2种理由:

  1. 产品的spec这么要求的;
  2. 想自己控制这个行为,因为在Android设备上可能每个的这一默认行为都不一样,厂商可以很容易修改它,从而导致app在使用体验上不一致。

how

笔者所知道的主要有3种方式,下面我们就一个个来看看。

  1. 通过theme/style来修改,代码如下:

                                       修改windowAnimationStyle的方式

    但是实际测试发现,不论是改activity的各种animation还是window的,效果都不是很好,可能在某些设备上ok的,但在另一些设备上又不好用,另外这种方式也不是很灵活,所以不推荐使用。

  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才引入的。

总结

以上是实际开发中可能用到的3种方式,但综合来看还是第2种方式最好用,也最灵活。注意,以上这些动画准确地讲应该是属于window animations

最新文章

  1. docfx daylybuild
  2. signalr-源码
  3. 【zTree】 zTree使用的 小例子
  4. bluetooth 蓝牙协议和标准,配置
  5. 【iOS】编译静态库
  6. hdu1507二分匹配
  7. MongoDB空间整理
  8. Oracle数据库(1)
  9. TCL随记(2)
  10. BestCoder Round #85
  11. win7系统自带截图工具快捷键是什么?怎么设置快捷键
  12. cocos creater 简单的跳跃动作。
  13. (转)C++静态库与动态库
  14. 【LeetCode题意分析&amp;解答】43. Multiply Strings
  15. ASP.NET MVC相关
  16. Palindrome Linked List leetcode
  17. 整合最优雅SSM框架:SpringMVC + Spring + MyBatis
  18. Node.js Stream(流)
  19. MyBatis进阶(四)
  20. yii 生成条码并上传到图片服务器(zimg)

热门文章

  1. 使用C#给Linux写Shell脚本
  2. 【道德经】漫谈实体、对象、DTO及AutoMapper的使用
  3. 【腾讯bugly干货分享】微信Android热补丁实践演进之路
  4. 2000条你应知的WPF小姿势 基础篇&lt;1-7&gt;
  5. 使用Rest访问Redis中的数据
  6. Python学习--05函数
  7. EventBus总线讲解
  8. 【JS】javascript 正则表达式 大全 总结
  9. 浅析MySQL复制
  10. 解决手机浏览器上input 输入框导致页面放大的问题(记录)