在Android常见面试题中我们会经常遇到关于动画种类的问题。百度上也会有许多的答案。Android平台提供了一套完整的动画框架,我们最常见的答案就是分为逐帧动画和补间动画这两种。可能这也是同学们习以为常的答案。可是这是在Android3.0版本之前。Android3.0以后增加了属性动画 Property Animation。这样子动画就分成两部分:
Tween Animation、Frame Animation只能用于View,被归类为ViewAnimation。
Property Animation
Property Animation可以定义在xml文件中,它用来在设定的时间内修改对象的属性。例如背景颜色和alpha的值。
这些xml文件定义的文件路径如下: res/animator/filename.xm
常用Java类:ValueAnimator, ObjectAnimator, or AnimatorSet.
Property Animation定义在android.animation包种。
Property Animation的文件可以以资源的形式引用:
In Java: R.animator.filename
In XML: @[package:]animator/filename
View Animation
View Animation包含了Tween Animation、Frame Animation。
Tween Animation定义在xml文件中。可以对view实现一系列的转换,例如:移动、渐变、伸缩、旋转。
Tween Animation只能应用于View对象,而且只支持一部分属性,如支持缩放旋转而不支持背景颜色的改变。而且对于Tween Animation,并不改变属性的值,它只是改变了View对象绘制的位置,而没有改变View对象本身,比如,你有一个Button,坐标(100,100),Width:100,Height:100,而你有一个动画使其移动(200,200),你会发现动画过程中触发按钮点击的区域仍是(100,100)-(200,200)。
Frame animation
帧动画是一系列的图片按顺序显示。
文件路径:res/drawable/filename.xml
Property Animation、Tween Animation、Frame Animation的文件路径都是不一样的。