您的位置:首页 > 移动开发 > Android开发

Android动画分类和区别

2016-08-01 10:37 447 查看
Android包含三种动画:View Animation(tween)、 Drawable Animation(frame)、Property Animation(Android3.0新引入)。

View Animation

基于View的渐变动画,她只改变了View的绘制效果,而实际属性值未变。比如动画移动一个按钮位置,但按钮点击的实际位置仍未改变。在代码中定义动画,可以参考AnimationSet类和Animation的子类;而如果使用XML,可以在res/anim/文件夹中定义XML文件。

Drawable Animation:

加载一系列Drawable资源来创建动画,这种传统动画某种程度上就是创建不同图片序列,顺序播放,就像电影胶片。在代码中定义动画帧,使用AnimationDrawable类;XML文件能更简单的组成动画帧,在res/drawable文件夹,使用<animation-list>采用<item>来定义不同的帧。感觉只能设置的属性是动画间隔时间。

Property Animation:

动画的对象除了传统的View对象,还可以是Object对象,动画之后,Object对象的属性值被实实在在的改变了。Property animation能够通过改变View对象的实际属性来实现View动画。任何时候View属性的改变,View能自动调用invalidate()来试试刷新。

View实施Property animation时的新属性:

translationX 、translationY: 左上坐标的改变值
rotation、 rotationX、 rotationY
scaleX 、 scaleY: 横纵向的缩放比例,如:1.2f、0.8f
pivotX 、 pivotY: 缩放和旋转时横纵向中心点,默认情况下是View的中心,如果想以View的左上坐标为中心进行旋转或者缩放,应该将其值都设置为0
x 、 y:
alpha:透明度. 默认为1,0代表全透明,即不可见

实例:ObjectAnimator.ofFloat(myView, "rotation", 0f, 270f);

这些属性能与Layout文件中的View属性相对应,不同的是:pivotX 和 pivotY对应android:transformPivotX 和android:transformPivotX;另外scaleX 和 scaleY:缩放都是基于原来大小,比如扩大了两倍之后,想缩小两倍,即还原为本身大小,如果采用ViewPropertyAnimator代码中应该如下:

myView.animate().scaleX(2.0f).scaleY(2.0f)//扩大两倍
myView.animate().scaleX(1.0f).scaleY(1.0f)//还原

从 Android 3.1开始, Property animation的 XML文件定义位于 res/animator/ 位于 (而不是 res/anim/)。Property animation类中对应的XML标签如下:

ValueAnimator - <animator>
ObjectAnimator - <objectAnimator>
AnimatorSet - <set>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: