您的位置:首页 > 其它

安卓设置Activity切换动画无效的问题

2014-09-04 20:41 417 查看
做安卓App时,常会设置Activity之间切换的动画。常用的方法有两种,一种是用Activity的overridePendingTransition方法;另一种是用style文件通过xml进行设置。

一开始使用style的时候,我只设置了Window的动画,在大部分手机上运行正常。后来有人反映在红米手机上会有两个动画同时播放,产生很奇怪的效果。然后又找了一下,发现Activity的动画也可以设置,于是对Activity的动画效果进行设置。但是我发现只有Window的动画设置了有效果,而Activity动画设置了完全没有效果。

这两个Window的动画属性设置了有效果:

<item name="android:windowEnterAnimation">@null</item>
<item name="android:windowExitAnimation">@null</item>

这四个Activity的动画属性设置了没有效果:

<!-- 新的Activity启动时Enter动画 -->
<item name="android:activityOpenEnterAnimation">@anim/slide_left_in</item>
<!-- 新的Activity启动时原有Activity的Exit动画 -->
<item name="android:activityOpenExitAnimation">@anim/keep</item>
<!-- 新的Activity退出时原有ActivityEnter动画 -->
<item name="android:activityCloseEnterAnimation">@anim/keep</item>
<!-- 新的Activity退出时Exit动画 -->
<item name="android:activityCloseExitAnimation">@anim/slide_right_out</item>

修改尝试了很多次都不行,还怀疑是手机系统被修改过的问题。但是别的程序在手机上运行似乎都很正常。后来又看了别的程序,发现就是那么设置的,并且运行正常。自己重新新建了一个项目,再次尝试发现竟然可以。

回到原来的工程中查看,终于找到了原因,我用的Activity在Manifest中设置了SingleInstance属性,所以Activity处于已经实例化的状态,不会再被实例化,于是Activity动画不会播放,只有Window动画会播放。把这个属性改成SingleTop就好了。

本文由PurpleSword(jzj1993)原创,转载请注明
原文网址 http://blog.csdn.net/jzj1993
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐