存放路径:res/anim
类型:
Alpha 透明度动画,可以产生淡入淡出的效果 对应的类:AlphaAnimation
Scale 大小缩放动画 对应的类:ScaleAnimation
Translate 移动动画 对应的类:TranslateAnimation
Rotate 旋转变化 对应的类:RotateAnimation
动画集合
可以使用set标签创建一个动画集合,set还有如下属性用于控播放:
duration: 动画的持续时间
startOffset: 动画起始偏移,如果没有指定这个属性,动画将会同时播放。
fillBefore :在动画开始之前是否应用动画变形
fillAfter: 在动画开始之后是否应用动画变形
interpolator: 动画插值器
使用方式:
Animation animation = AnimationUtils.loadAnimation(this, R.anim.animation_demo);
animation.setRepeatCount(Animation.INFINITE);
imageView.startAnimation(animation);
动画属性
接下来我们来看下这些属性具体有哪些属性:
xml属性 |
java方法 |
解释 |
android:detachWallpaper |
setDetachWallpaper(boolean) |
是否在壁纸上运行 |
android:duration |
setDuration(long) |
动画持续时间,毫秒为单位 |
android:fillAfter |
setFillAfter(boolean) |
控件动画结束时是否保持动画最后的状态 |
android:fillBefore |
setFillBefore(boolean) |
控件动画结束时是否还原到开始动画前的状态 |
android:fillEnabled |
setFillEnabled(boolean) |
控件动画结束时是否还原到开始动画前的状态 |
android:interpolator |
setInterpolator(Interpolator) |
设定插值器 |
android:repeatCount |
setRepeatCount(int) |
重复次数 |
android:repeatMode |
setRepeatMode(int) |
重复类型 |
android:startOffset |
setStartOffset(long) |
调用start函数之后等待开始运行的时间,单位为毫秒 |
android:zAdjustment |
setZAdjustment(int) |
表示被设置动画的内容运行时在Z轴上的位置(top/bottom/normal),默认为normal |
方法 |
解释 |
reset() |
重置Animation的初始化 |
cancel() |
取消Animation动画 |
start() |
开始Animation动画 |
setAnimationListener(AnimationListener listener) |
给当前Animation设置动画监听 |
hasStarted() |
判断当前Animation是否开始 |
hasEnded() |
判断当前Animation是否结束 |
我们知道Animation是上述所有动画的属性,因此上述的每个动画都有这些属性. 下面我们来看看每个动画都有哪些特定的属性:
xml属性 |
java方法 |
解释 |
android:fromAlpha |
AlphaAnimation(float fromAlpha, …) |
动画开始的透明度(0.0到1.0,0.0是全透明,1.0是不透明) |
android:toAlpha |
AlphaAnimation(…, float toAlpha) |
动画结束的透明度 |
xml属性 |
java方法 |
解释 |
android:fromDegrees |
RotateAnimation(float fromDegrees, …) |
旋转开始角度,正代表顺时针度数,负代表逆时针度数 |
android:toDegrees |
RotateAnimation(…, float toDegrees, …) |
旋转结束角度,正代表顺时针度数,负代表逆时针度数 |
android:pivotX |
RotateAnimation(…, float pivotX, …) |
缩放起点X坐标(数值、百分数、百分数p,譬如50表示以当前View左上角坐标加50px为初始点、50%表示以当前View的左上角加上当前View宽高的50%做为初始点、50%p表示以当前View的左上角加上父控件宽高的50%做为初始点) |
android:pivotY |
RotateAnimation(…, float pivotY) |
缩放起点Y坐标,同上规律 |
xml属性 |
java方法 |
解释 |
android:fromXScale |
ScaleAnimation(float fromX, …) |
初始X轴缩放比例,1.0表示无变化 |
android:toXScale |
ScaleAnimation(…, float toX, …) |
结束X轴缩放比例 |
android:fromYScale |
ScaleAnimation(…, float fromY, …) |
初始Y轴缩放比例 |
android:toYScale |
ScaleAnimation(…, float toY, …) |
结束Y轴缩放比例 |
android:pivotX |
ScaleAnimation(…, float pivotX, …) |
缩放起点X轴坐标(数值、百分数、百分数p,譬如50表示以当前View左上角坐标加50px为初始点、50%表示以当前View的左上角加上当前View宽高的50%做为初始点、50%p表示以当前View的左上角加上父控件宽高的50%做为初始点) |
android:pivotY |
ScaleAnimation(…, float pivotY) |
缩放起点Y轴坐标,同上规律 |
xml属性 |
java方法 |
解释 |
android:fromXDelta |
TranslateAnimation(float fromXDelta, …) |
起始点X轴坐标(数值、百分数、百分数p,譬如50表示以当前View左上角坐标加50px为初始点、50%表示以当前View的左上角加上当前View宽高的50%做为初始点、50%p表示以当前View的左上角加上父控件宽高的50%做为初始点) |
android:fromYDelta |
TranslateAnimation(…, float fromYDelta, …) |
起始点Y轴从标,同上规律 |
android:toXDelta |
TranslateAnimation(…, float toXDelta, …) |
结束点X轴坐标,同上规律 |
android:toYDelta |
TranslateAnimation(…, float toYDelta) |
结束点Y轴坐标,同上规律 |