1.动画的属性表
官方文档
https://developer.android.com/guide/topics/resources/animation-resource#Property
1.1 常用属性
它们可以通过代码setXXX,getXXX,也可在xml中配置。
属性[类型] | 功能 | 备注 |
Duration[long] | 属性为动画持续时间 | 时间以毫秒为单位 |
fillAfter [boolean] | 当设置为true ,该动画转化在动画结束后被应用 | |
fillBefore[boolean] | 当设置为true ,该动画转化在动画开始前被应用 | |
interpolator | 指定一个动画插值器 | 见1.2 插值器 |
repeatCount[int] | 动画的重复次数 | |
RepeatMode[int] | 定义重复后,下次开始动画的行为 | Animation.RESTART:重新开始 Animation.REVERSE:倒放动画 |
startOffset[long] | 动画之间的时间间隔,从上次动画停多少时间开始执行下个动画 | |
zAdjustment[int] | 定义动画的Z Order的改变 | 0:保持Z Order不变 1:保持在最上层 -1:保持在最下层 |
fromXDelta | X轴方向开始位置,可以是%,也可以是具体像素 | |
toXDelta | X轴方向结束位置,可以是%,也可以是具体像素 | |
fromYDelta | Y轴方向开始位置,可以是%,也可以是具体像素 | |
toYDelta | Y轴方向结束位置,可以是%,也可以是具体像素 |
1.2 插值器
@android:anim/accelerate_interpolator | 越来越快 |
@android:anim/decelerate_interpolator | 越来越慢 |
@android:anim/accelerate_decelerate_interpolator | 先快后慢 |
@android:anim/anticipate_interpolator | 先后退一小步然后向前加速 |
@android:anim/overshoot_interpolator | 快速到达终点超出一小步然后回到终点 |
@android:anim/anticipate_overshoot_interpolator | 到达终点超出一小步然后回到终点 |
@android:anim/bounce_interpolator | 到达终点产生弹球效果,弹几下回到终点 |
@android:anim/linear_interpolator | 均匀速度 |
2.代码
2.1 开始动画
1 public void start(){
2 Animation animation = AnimationUtils.loadAnimation(getContext(), R.anim.rotate_anim);
3 mScanStation.startAnimation(animation);
4 }
2.2 停止动画
1 public void stop(){
2 mImageView.clearAnimation();
3 mImageView.setRotation(0);//复位到0度
4
5 }
3.xml配置动画
每个xm一个独立文件 ,在res/anim 下.
3.1 透明
1 <?xml version="1.0" encoding="utf-8"?>
2 <alpha xmlns:android="http://schemas.android.com/apk/res/android"
3 android:duration="1000"
4 android:fromAlpha="1.0"
5 android:repeatMode="restart"
6 android:repeatCount="-1"
7 android:interpolator="@android:anim/accelerate_decelerate_interpolator"
8 android:toAlpha="0.0" />
3.2 旋转
1 <rotate
2 xmlns:android="http://schemas.android.com/apk/res/android"
3 android:fromDegrees="0"
4 android:toDegrees="360"
5 android:duration="1000"
6 android:pivotX="50%"
7 android:pivotY="50%"
8 >
9 </rotate>
3.3 缩放
1 <?xml version="1.0" encoding="utf-8"?>
2 <scale
3 android:fromXScale="1"
4 android:toXScale="1.1"
5 android:fromYScale="1"
6 android:toYScale="1.1"
7 android:repeatMode="restart"
8 android:repeatCount="-1"
9 android:duration="1500"
10 android:pivotX="50%"
11 android:pivotY="50%"
12 xmlns:android="http://schemas.android.com/apk/res/android">
13 </scale>
3.4 平移
1 <?xml version="1.0" encoding="utf-8"?>
2 <translate
3 xmlns:android="http://schemas.android.com/apk/res/android"
4 android:fromXDelta="0"
5 android:toXDelta="0"
6 android:fromYDelta="0"
7 android:toYDelta="100"
8 android:duration="1000"
9 >
10 </translate>
3.5 组合动画
1 <?xml version="1.0" encoding="utf-8"?>
2 <set android:duration="1000"
3 android:shareInterpolator="true"
4 xmlns:android="http://schemas.android.com/apk/res/android">
5
6 <alpha android:fromAlpha="0" android:toAlpha="1"></alpha>
7 <translate android:fromXDelta="0" android:toXDelta="100"
8 android:fromYDelta="0" android:toYDelta="100"></translate>
9 </set>