Android动画学习(概述):
前言:
看了一下网上对于Android动画的相关帖子,发现大家对于Android动画的总结大都局限在在帧动画和缓动动画这块。
在查看google的Android官方文档的时候,发现还有一些别的Android动画模块。
下面,我将把我目前了解的Android动画的各个模块,做一下归纳和整理。
动画类型:
Android动画大体上分为帧动画,属性动画,缓动动画以及过渡动画,下面将说明一下每个动画的定义:
帧动画 (所在包:android.graphics.drawable)
相关类:AnimationDrawable
将一组动画图片通过XML组织起来播放,就好像gif图片的动画效果。
它的操作对象必须在一个View上。
属性动画(所在包:android.animation):
相关类:AnimationSet,ValueAnimation,ObjectAnimation
设置一个起始值和终止值,让系统计算起始值和终止值之间的数值,来实现动画效果。
通过使用系统自带的Interpolator或者自定义的Interpolator来实现一些特殊的属相变化效果。
它所操作的对象类型可以是View,也可以不是View。
缓动动画 (所在包:android.view.animation):
相关类:AlphaAnimation,AnimationSet,RotateAnimation,ScaleAnimation,TranslateAnimation
设置一个视图的某个属性的起始值和终止值,让系统计算起始值和终止值之间的过渡数值,来实现动画效果。目前Android支持四个属性的补间动画(Translate,Alpha,Rotate,Scale)。
与帧动画一样,它的操作对象也必须在一个View上。
可以设置Interpolator来实现不同的缓动效果。
过渡动画 (所在包:android.transition):
相关类:Scene,Transition,TransitionSet,TransitionManager
设置起始视图和终止视图,让系统来实现这两个视图的过渡动画。
它的操作对象是两个不同的View或者ViewGroup对象。
Android官方文档中将上面的四种动画进行了如下的分类:
从官方的分类来看,第一层级的动画分类是按照操作的对象来划分的,属性动画操作的对象很广泛,视图和非视图都可以;视图动画操作的对象类型主要是View类和Surefaces类,并且是在同一个视图对象上;过渡动画的操作对象一般是两个视图,为了实现两个视图之间的切换效果。
相关文档:
1.google官方对于属性动画和视图动画的使用介绍:
http://developer.android.com/guide/topics/resources/animation-resource.html
2.google官方对于过渡动画的使用介绍:
https://developer.android.com/training/transitions/index.html