900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > android转场动画效果 Android转场动画

android转场动画效果 Android转场动画

时间:2024-03-27 13:06:00

相关推荐

android转场动画效果 Android转场动画

Android最开始一个activity基本就是一个页面,但是没切换一次页面都要重新切换一个activity,这非常耗性能,并且随着平板的出现,更多时候我们只想切换一个页面的局部区域,因此fragment在Android3.0应运而生,fragment有自己的生命周期,但是比activity轻量和节约性能,因此现在更多是在一个activity上切换fragment来更新页面内容,和前端上单页面技术有共通之处了。

用户体验总是非常重要的,所以好的页面转场动画也能给用户一种好的用户体验。android中存在activity和fragment两种切换页面的方式,因此页面转场动画也要分别讨论了。

一、Activity的页面转场动画

资源文件:资源文件放在res/anim文件夹下,是view animation,xml文件根节点可以是、、、、interpolator element,或者是set。

调用方法:Activity的转场动画是通过overridePendingTransition(int enterAnim, int exitAnim)实现的。enterAnim为进入界面的activity所用到的anim资源文件,设为0则代表新界面进入时无动画;exitAnim是退出界面的activity所用到的anim资源文件,参数设为0则退出旧界面时无动画。

调用时间:该方法在startActivity(Intent)或者finish()之后调用。

兼容性:该方法是API Level 5加入的,故只支持Level 5 以上的android系统。

二、Fragment的页面转场动画

fragment是android3.0(API level 11)后引入的,由于兼容的复杂性和后期引入时更多的考虑,因此其转场动画相比Activity要复杂得多。

首先,按照动画是否是自定义的可以将动画划分为”标准转场动画“和”自定义转场动画“。

标准转场动画

调用方法:用setTransition(int transit) 方法来调用;

可传参数:

TRANSIT_NONE(无动画形式)

TRANSIT_UNSET(未设置形式)

TRANSIT_FRAGMENT_OPEN(打开形式)

TRANSIT_FRAGMENT_CLOSE(关闭形式)

TRANSIT_FRAGMENT_FADE(fade形式)

注意这些参数并不止影响参数名上所表示的情况下的动画,例如设置了open也会导致close有匹配的动画。

自定义转场动画

调用方法:用setCustomAnimations() 来调用

转场场景:这里需要单独列出的原因是因为fragment在添加时可以指定加入到某一个back stack中,因此转场场景出了一般的添加和移除外,还有进入back stack中和从back stack中push出来这两种场景,因此共四种转场场景,而这和setCustomAnimations()的传入参数是息息相关的。(需要back stack的原因:当用户按下activity地返回键时,存在于back stack中得transactions将被pop出来,并阻止activity结束自己,当back stack中已经没有transaction时,activity才回结束自己。)

注意点:setCustomAnimations()需要在add、remove、replace前调用,否则无效。

然后我们需要根据自己的app所需的兼容程度决定是否要使用google提供的v4包和使用其对应的转场动画形式,如果不使用,则Fragment及其动画只能用于API Level 11以上的android系统。

android.app.Fragment

动画类型:Property Animation

资源文件:需要放置于res\animator\目录下,且根节点为:、、之一

自定义动画:setCustomAnimations,这个方法共有两个多态形式

setCustomAnimations(int enter,inter exit),该方法在API Level 11以上都得到了支持,但是只能用于fragment的add、remove、replace,不能用于back stack的进入和pop出来的动画。

setCustomAnimations(int enter,int exit,int popenter,int popout),该方法在API Level 13以上得到支持,功能更强大,前两个参数是fragment的进入和退出,后两个参数用于从back stack的进入和退出。

注意点:

A:back stack 是对transaction存储的堆栈

B:setCutomAnimations(int enter,int exit,int popenter,int popout)的后两个参数都是pop操作,一个是pop到屏幕上,另一个是pop出屏幕,而不是进入back stack和出back stack,而添加入back stack 的动作addToBackStack(String name)是在add或者replace fragment的时候就完成了的。

android.support.v4.app.Fragment

动画类型:View Animation

资源文件:需要放置于res\anim\目录下,根节点与Acitivity的xml文件一致,是、、、、interpolator element,或者是set之一

方法:同android.app.Fragment,但没有API Level的限制

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。