一、View动画
1、View动画的种类 <set>
- -android:duration 动画持续时间
- -android:interpolator 动画集合所采用的插值器
- -android:shareinterpolator 集合中的动画是否和集合共享同一个插值器
1)平移动画 <translate>
- -android:fromXDelta 表示x的起始值
- -android:fromYDelta 表示y的起始值
- -android:toXDelta 表示x的结束值
- -android:toYDelta 表示y的结束值
2)缩放动画 <scale>
- -android:fromXScale 水平方向缩放的起始值(0.0-1.0)
- -android:fromYScale 水平方向缩放的起始值(0.0-1.0)
- -android:toXScale 水平方向缩放的起始值(0.0-1.0)
- -android:toYScale 水平方向缩放的起始值(0.0-1.0)
- -android:pivotX 缩放的轴点的x坐标
- -android:pivotY 缩放的轴点的y坐标
3)旋转动画 <rotate>
- -android:fromDegrees 旋转开始的角度
- -android:toDegrees 旋转结束的角度
- -android:pivotX 旋转的轴点的x坐标
- -android:pivotY 旋转的轴点的y坐标
4)渐变动画 <alpha>
- -android:fromAlpha 表示透明度的起始值(0.0-1.0)
- -android:toAlpha 表示透明度的结束值(0.0-1.0)
使用:
Animation animation = AnimationUtils.loadAnimation(this, R.anim.animation_test);view.startAnimation(animation);
2、自定义View动画
重写它的initialize和applyTransformation方法,在initialize中做一些初始化工作,在applyTransformation中进行一些相应的矩阵变换。3、帧动画
帧动画是顺序播放一组预先定义好的图片,类似于电影播放。在res/drawable下定义文件,根元素为<animation-list>,其中加入一个个item,即图片。
二、View动画的特殊使用场景
1、LayoutAnimation
1)作用于ViewGroup,为ViewGroup指定一个动画,它的子元素都会具有这种动画。2)<layoutAnimation>中的属性:
- -android:delay 子元素开始动画的时间延迟
- -android:animationOrder 子元素动画的顺序
- -android:animation 子元素具体的入场动画
2、Activity的切换效果
使用overridePendingTransition方法,这个方法必须位于startActivity或者finish之后,否则不起作用。三、属性动画
1、主要动画类
1)AnimationSet:对应<set>标签
- -android:ordering 表示动画集合中子动画的播放顺序
- -android:duration 表示动画时长
- -android:valueFrom 表示属性的起始值
- -android:valueTo 表示属性的结束值
- -android:startOffset 表示动画的延迟时间
- -android:repeatCount 动画的重复次数
- -android:repeatMode 动画的重复模式
- -android:valueType 表示android:propertyName所指定的属性的类型
- -android:propertyName 表示属性动画的作用对象的属性的名称
- -android:duration 表示动画时长
- -android:valueFrom 表示属性的起始值
- -android:valueTo 表示属性的结束值
- -android:startOffset 表示动画的延迟时间
- -android:repeatCount 动画的重复次数
- -android:repeatMode 动画的重复模式
- -android:valueType 表示android:propertyName所指定的属性的类型
2、插值器和估值器
1)Interpolator:计算出当前属性值改变的百分比。2)TypeEvaluator:根据当前属性值改变的百分比来计算改变后的属性值。
3、属性动画的监听器
主要有两个接口:1)AnimatorUpdateListener
- -onAnimationStart:动画开始调用
- -onAnimationEnd:动画结束调用
- -onAnimationCancel:动画取消调用
- -onAnimationRepeat:动画重复调用
- --onAnimationUpdate:动画每播放一帧,就调用一次
4、对任意属性做动画
1)对View的X属性做动画,想让动画生效,必须满足两个条件:- -这个View必须提供setX方法。
- -setX方法对属性X所做的改变,必须通过某种方法反映出来。
2)解决方法
- -给你的对象加上get和set方法,前提是你有权限。
- -用一个类来包装原始对象,间接为其提供get和set方法。(实现简单)
- -采用ValueAnimator,监听动画过程,自己实现属性的改变。