Android 动画机制(三)
过渡动画(Transition Animation)
过渡动画是在Android 4.4引入的新的动画框架,它的本质上还是属性动画,只不过是对属性动画做了一层封装,方便开发者实现Activity或者View的过渡动画效果,和属性动画相比,过度动画最大的不同是需要为动画前后准备不同的布局,并通过对应的API实现两个布局的过渡动画,而属性动画只需要一个布局文件。
在使用Transition Animation框架实现动画效果之前,我们先了解这个框架的几个基本概念:
1 Scene :定义了页面的当前状态信息,Scene的实例化一般通过静态工厂方法实现。
2 Transition:定义了界面之间切换的动画信息,在使用TransitionManager 时没有指定使用哪个Transition,那么会使用默认的AutoTransition ,源码如下,可以看出AutoTransition的动画效果就是先隐藏对象变透明,然后移动指定的对象,最后显示出来。
TransitionManager:控制Scene之间切换的控制器,切换常用的方法有以下两个,其中的sDefaultTransition 就是前面说的AutoTransition的实例
过渡动画的使用很简单,首先定义同一个页面的两个布局,分别是动画前的布局和动画后的布局,我们将其命名为fragment_transition_scene_before.xml和fragment_transition_scene_after.xml,这两个布局文件的根布局具有相同的android:id值,动画前的布局文件内容如下。
Transition Animation使用代码实现的例子如下
上面的代码分别演示了XML布局和代码实现两种方式,过渡动画的XML文件需要放在res/transition目录下,其中transition_manager.xml
其中的slow_auto_transition也是定义在res/transition目录中的自定义Transition动画文件