Android Transition 和 Activity & Fragment Transition详解(四)--执行一个Transition
来源:互联网 发布:小猪cms9.0源码 可用 编辑:程序博客网 时间:2024/04/30 02:42
这一章节展示如何使用系统内置的Transition(比如move、fade、resize等)来实现动画效果。在Transition框架中,是使用动画的方式由起点Scene到终点Scene的变化。动画是由Transition对象自动创建并通过TransitionManager来执行或者停止的。
上一章节中,我们学习了如何创建不同view hierarchy的Scene对象。起点Scene和终点Scene都被定义好之后,接下来就需要创建Transition对象,并将Scene对象传给Transition对象,同时在创建Transition时还要指定执行的是哪一种动画效果。创建Transition对象也是有两种方式:加载xml配置文件,或者java代码动态new对象
下表中列出了几个SDK中内置的Transition,可以直接在xml中通过以下几个标签来声明具体的Transition类型
加载xml配置文件创建Transition对象
通过这种方式创建Transition对象,可以在不修改Activity中的代码的情况下更改Transition属性。具体步骤如下:
1)在res文件夹中创建transition文件夹
2)在res/transition文件夹中,创建xml配置文件
3)在xml文件中添加相应的内置Transition标签(比如<fade>)
比如如下代码中,通过<fade>标签声明一个Fade Transition对象
res/transition/fade_transition.xml
<fade xmlns:android="http://schemas.android.com/apk/res/android" />xml文件定义好之后,就可以在java代码中通过加载xml文件生成Transition对象,代码如下:
Transition mFadeTransition = TransitionInflater.from(this). inflateTransition(R.transition.fade_transition);除了加载xml文件的方式,也可以调用Fade的构造器动态的new Fade对象,比如:
Transition mFadeTransition = new Fade();
执行一个Transition
当接收到一个用户事件时,你开一执行一个Transition播放一段动画效果。调用TransitionManager.go方法执行一个Transition效果,并传入Scene对象和Transition对象。代码如下:
TransitionManager.go(mEndingScene, mFadeTransition);以上代码被调用之后,系统会在mEndingScene的根视图内执行mFadeTransition所定义的动画效果。每一个Transition都有两个Scene场景,一个起始场景和一个终止场景。但是在上述代码中并没有指定起始场景。系统会自动将之前Transition对象的ending Scene作为当前Transition的起始Scene。
执行多个Transition
同属性动画类似,我们可以一次执行多个Transition效果。比如,你在两个Scene之间转换时,一边移除几个Views另一边又添加了几个新的Views。这样的效果我们就可以使用Transition来完成。将移除的Views使用fade out Transition移出屏幕,同时将新添加的Views以movement的Transition效果展示到屏幕上。
通过以下代码,可以在xml文件中定义一个TransitionSet
<transitionSet xmlns:android="http://schemas.android.com/apk/res/android" android:transitionOrdering="sequential"> <fade android:fadingMode="fade_out" /> <changeBounds /> <fade android:fadingMode="fade_in" /></transitionSet>因为TransitionSet继承自Transition,因此获取TransitionSet对象跟获取Transition对象的方法一样
- Android Transition 和 Activity & Fragment Transition详解(四)--执行一个Transition
- Android Transition 和 Activity & Fragment Transition详解(一)
- Android Transition 和 Activity & Fragment Transition详解(二)--Android Transition框架介绍
- Android Transition 和 Activity & Fragment Transition详解(三)--从创建一个Scene开始
- Activity和Fragment Transition
- Activity和Fragment Transition介绍
- Activity和Fragment Transition介绍
- Activity和Fragment transition介绍
- Activity和Fragment Transition介绍
- Activity和Fragment Transition介绍
- Android 5.0 中Activity和Fragment transition API
- Android:Fragment Transition介绍
- Android 笔记 transition 补充 --content transition / activity transition
- transition
- transition
- transition
- transition
- transition
- UIwindow 窗体初始化
- JSONObject与JSONArray的使用(jackson)
- 欧洲维修年度大会圆满结束,李葆文教授荣获大会最佳论文奖
- 【Leetcode】Merge Intervals
- 安装Apache后查看httpd状态出现“httpd dead but subsys locked”问题
- Android Transition 和 Activity & Fragment Transition详解(四)--执行一个Transition
- 【Android】广播机制 Broadcast
- eclipse 打开SDK manager报错 A folder failed to be renamed or moved...
- zookeeper配置说明
- Android 兼容 小问题
- 如何区分多个百度地图marker的点击事件
- Comparable接口的用法和实现
- 写给iOS开发初学者
- 深入浅出学Hive——初始Hive