视图动画提供了四种动画方式:
透明度动画: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
表示动画持续时间