Android View 视图动画

来源:互联网 发布:盒子k歌软件 编辑:程序博客网 时间:2024/06/09 14:12

视图动画提供了四种动画方式:

透明度动画:AlphaAnimation

旋转动画:RotateAnimation

位移动画:TranslateAnimation

缩放动画:ScaleAnimation

这四种动画动画共同拥有的方法:

1、设置动画持续时长

setDuration(long durationMillis)

参数durationMillis的单位为毫秒。

2、为View绑定动画

View.setAnimation(Animation animation)

参数animation就是我们定义的动画对象

3、开始动画

View.startAnimation(Animation animation)

参数animation就是我们定义的动画对象

4、设置动画重复次数

setRepeatCount(int repeatCount)

参数repeatCount就是重复次数,如果设置为-1则表示一直重复

5、结束动画

cancel()

6、设置插值器

setInterpolator(Interpolator i)

参数是一个Interpolator对象

关于都有哪些类型的Interpolator对象,这里有一篇非常好的博客:插值器

下面分别介绍几个重要方法

一、AlphaAnimation

1、构造方法

AlphaAnimation(float fromAlpha, float toAlpha)

参数含义:

第一个参数fromAlpha:动画开始时的透明度

第二个参数toAlpha:动画结束时的透明度

这里需要注意的是这两个值的范围为[ 0.0 , 1.0 ],0.0为完全透明,1.0为完全不透明

二、RotateAnimation

1、构造方法

RotateAnimation(float fromDegrees, float toDegrees, float pivotX, float pivotY)

参数含义:

第一个参数fromDegrees:旋转开始的角度

第二个参数toDegrees:旋转结束的角度

第三个参数pivotX:旋转中心点的x坐标

第四个参数pivotY:旋转中心点的y坐标

需要注意的是,这里的角度是从x轴正方向下方开始的

三、TranslateAnimation

1、构造方法

TranslateAnimation(float fromXDelta, float toXDelta, float fromYDelta, float toYDelta)

这个参数不是很好理解,举一个例子吧

如果当前View在(10,10)点,构造方法参数为(0,10,0,10),那么View从当前位置滑动到(20,20)点。

如果当前View在(10,10)点,构造方法参数为(10,10,10,10),那么View从当前位置跳跃到(20,20)点,再滑动到(30,30)点。

四、ScaleAnimation

1、构造方法

ScaleAnimation(float fromX, float toX, float fromY, float toY)

参数含义:

fromX:动画开始时x坐标的伸缩尺寸

toX:动画结束时x坐标的伸缩尺寸

fromY:动画开始时y坐标的伸缩尺寸

toY:动画结束时y坐标的伸缩尺寸

这四种动画也可以使用XMl文件来编写,一般情况下推荐使用XML文件,这种XML文件需要在res/anim文件夹下创建

那么这里涉及到5个标签:

set

alpha

scale

translate

rotate

下面分别说一下这5个标签:

一、set

set标签表示动画集合,对应AnimationSet类

它的属性有:

1、android:interpolator

表示动画所采用的插值器,插值器影响动画的速度。

2、android:shareInterpolator

表示集合中的动画是否共享同一个插值器

3、android:fillAfter

表示动画结束以后是否停留在结束状态

二、translate

表示平移动画,对应TranslateAnimation类

它的属性有:

1、android:fromXData

表示起点的x坐标

2、android:fromYData

表示起点的y坐标

3、android:toXData

表示终点的x坐标

4、android:toYData

表示终点的y坐标

三、scale

表示缩放动画,对应ScaleAnimation类

它的属性有:

1、android:fromXScale

表示水平方向缩放的起始值

2、android:toXScale

表示水平方向缩放的结束值

3、android:fromYScale

表示竖直方向缩放的起始值

4、android:toYScale

表示竖直方向缩放的结束值

5、android:pivotX

表示缩放中心的x坐标

6、android:pivotY

表示缩放中心的y坐标

默认情况下缩放中心是View的中心点

四、rotate

表示旋转动画,对应RotateAnimation类

1、android:fromDegrees

表示旋转开始的角度

2、android:toDegrees

表示旋转结束的角度

3、android:pivotX

表示旋转中心的x坐标

4、android:pivotY

表示旋转中心的y坐标

默认旋转中心为View的中心。

五、alpha

表示透明度动画,对应AlphaAnimation类

1、android:fromAlpha

表示透明度的起始值

2、android:toAlpha

表示透明度的结束值

另外有一个通用属性:

1、android:duration

表示动画持续时间

原创粉丝点击