设为首页 加入收藏

TOP

Android关于Activity切换效果的实现加强
2014-11-24 14:39:18 来源: 作者: 【 】 浏览:7
Tags:Android 关于 Activity 切换 效果 实现 加强

早前做完一个应用后期需要加入点效果化。


相对于iPhone上应用的效果,最为经典的界面切换视觉效果就是,放大进入和缩小退出。


并且如大家所知的,提供了


overridePendingTransition()这个


最简单实现的方法api.


------------------------


但是如网上所说的:


这里需要特别说明的是,关于overridePendingTransition这个函数,有两点需要主意:
1.它必需紧挨着startActivity()或者finish()函数之后调用
2.它只在android2.0以及以上版本上适用


----------------------------------------


第二点不提了。


提下第一点,该方法必须在以上两个函数之后调用。


简单说就是 A ——> B切换


我们可以在A是startActivity方法后执行。那我A进来的时候呢?


比如A为入口Activity。


当然目前的应用可以很简单的解决这个视觉上的问题,因为一般应用进入都做了log或是过渡的Activity。


问题1也基本算解决了。


但是感觉每次都在start或是finish方法后写下这代码挺麻烦的


于是我试着把overridePendingTransition写在基类的oncreate中。




然后蛋疼的去看了下Activity中overridePendingTransition()方法,


然后引出:ActivityManagerNative,ActivityManagerProxy等等各个无语凝噎的名词。


引出ActivityManager框架。FrameWork层次东西了,有兴趣的可以google研究下。




提下切换效果的另一种玩法。


style文件。


上面这个方式看似能很好的解决了切换这个问题。


但是仔细一看却发现,只存在两种状态下,startActivity,开启时和 finish,结束时。


一开始我考虑到activity单例以及不销毁问题。也就是不finish的时候。


悲剧了效果代码没地方写了。


简单举例:比如tabLayout布局式的。一个tabHost容器中有4个Activity,一般来说tag切换时,我们是不调用finish,而只是执行onStop,甚至上次我打


log时发现居然只是onPasue()(这个问题比较诡异了,暂且不理它)。


最后发现activity中Style下的一个android:windowAnimationStyle属性。








参数更多查看文档


http://developer.android.com/reference/android/R.styleable.html#WindowAnimation



顺带提下界面中View的效果,同样的可以自定义动画。


以及在布局文件中的


android:layoutAnimation中定义动画效果。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇设计模式在C语言中的应用--读Ngin.. 下一篇单片机C语言编程定时器的几种表达..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: