在讲解属性动画之前先补充一下Android 3.0之前存在的动画种类:frame-by-frame animation(帧动画) 和 tweened animation(补间动画)两种。
为什么Android 3.0开始要引入Property Animator 属性动画呢?
首先,我们会好奇Property Animator 有什么特殊的地方?在什么情况下适合采用Property Animator的方式自定义动画效果?
接下来让我们分析一下前两种动画的优势与劣势。
何为帧动画呢,依据字面意思大家可以猜测到帧动画应该会有一帧一帧的效果,的确如此。不过,它适合用在什么的场景呢?
帧动画类似于电影方式一张图片一张图片的切换(见过胶片电影播放的童鞋应该更加清楚),其原理是在“连续的关键帧”中分解动画动作,也就是在时间轴的每帧上逐帧绘制不同的内容,使其连续播放而成动画。 因为逐帧动画的帧序列内容不一样,不但给制作增加了负担而且最终输出的文件量也很大,但它的优势也很明显:逐帧动画具有非常大的灵活性,几乎可以表现任何想表现的内容,而它类似与电影的播放模式,很适合于表演细腻的动画。
那么补间动画又有哪些十八般武艺呢?
补间动画主要有 淡入淡出、缩放、平移、旋转等4种基本的操作,利用AnimationSet可以将几种操作组合起来,表现出不同的效果。此外我们还可以通过Interpolator来控制动画的速度,以达到不同的视觉上的效果。
你可能会说其实补间动画的功能也挺强大的嘛,其实就是很强大(与帧动画相比);
那么我们来探讨一下补间动画的软肋,比如它只能用在View对象上(局限1)、再比如说它只能改变View对象的绘制效果,而不能修改View对象的属性(局限2)、此外它的实现机制是看硬编码实现的,功能就是这样(可以调侃的说一句,从我这里走就这么一条路,你爱过不过,不过拉倒!哈哈~),基本没有什么扩展性(局限3)。
同样,帧动画也只能如此优秀的逐帧的播放照片。
接下来我们可以看看属性动画有什么独特之处。
属性动画实际上是一种不断地对值进行操作的机制,并将值赋值到指定对象的指定属性上,可以是任意对象的任意属性(你没有看错,的确是任意对象、任意属性)。
说了这么多,那么我们接下来深入了解一下这个让你越来越爱的属性动画。
各位请移步Android属性动画详解(二)
网友评论