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>