1、 补间动画说明
定义好动画的起始帧和结束帧以及播放时长,动画过程中的帧由计算机计算得出。补间动画又可以分为四种形式,分别是 alpha(透明度变化),translate(位移),scale(缩放大小),rotate(旋转)。
2、实现方式
2.1 创建目录res/anim,在res/anim目录下创建文件anim.xml
2.2 alpha动画(透明度)
2.2.1 xml配置文件
fromAlpha 动画开始透明度
toAlpha 动画结束透明度
透明度1.0为完全不透明,0.0为完全透明
<alpha
xmlns:android="http://schemas.android.com/apk/res/android"
android:fromAlpha="1.0"
android:toAlpha="0.0">
</alpha>
2.2.2 代码调用
Animation animation = AnimationUtils.loadAnimation(AnimationActivity.this,R.anim.alpha_anim);
animation.setDuration(4000);
anim_iv.startAnimation(animation);
2.2.3 效果
2.3 translate动画(位移)
2.3.1 xml配置文件
fromXDelta位移起始X轴坐标
toXDelta位移结束X轴坐标
fromYDelta位移起始Y轴坐标
toYDelta位移结束Y轴坐标
<translate
xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="0"
android:toXDelta="700"
android:fromYDelta="0"
android:toYDelta="0" >
</translate>
2.3.2 效果
2.4 scale动画(缩放)
2.4.1 xml配置文件
fromXScale X轴起始缩放比例
fromYScale Y轴起始缩放比例
toXScale X轴结束缩放比例
toYScale Y轴结束缩放比例
pivotX 缩放中心X轴坐标
pivotY 缩放中心Y轴坐标
<scale
xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXScale="0.0"
android:fromYScale="0.0"
android:pivotX="50%"
android:pivotY="50%"
android:toXScale="1.0"
android:toYScale="1.0">
</scale>
2.4.2 效果
2.5 rotate动画(旋转)
2.5.1 xml配置文件
fromDegrees旋转起始角度
fromDegrees旋转结束角度
pivotX旋转中心X轴坐标
pivotY旋转中心Y轴坐标
<rotate
xmlns:android="http://schemas.android.com/apk/res/android"
android:fromDegrees="0"
android:toDegrees="360"
android:pivotX="70"
android:pivotY="70" >
</rotate>
2.5.2 效果
2.6 pivot属性说明
pivot属性在rotate动画和scale动画中出现,这2个动画发生时View都是以固定的点位进行动画,对这一固定点位的描述需要使用pivot属性。
pivotX的取值 | 含义 |
---|---|
10 | 距离动画所在view自身左边缘10像素 |
10% | 距离动画所在view自身左边整个View宽度的10% |
10%p | 距离动画所在view父控件左边整个View宽度的10% |
2.7 使用set 标签将多个动画组合
2.7.1 xml配置同时实现透明变化——位移——缩放——旋转
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha
android:fromAlpha="0.0"
android:toAlpha="1.0"
android:duration="2000">
</alpha>
<translate
android:fromXDelta="0"
android:toXDelta="400"
android:fromYDelta="0"
android:toYDelta="500"
android:duration="4000">
</translate>
<rotate
android:fromDegrees="0"
android:toDegrees="360"
android:pivotX="0%"
android:pivotY="0%"
android:duration="2000">
</rotate>
<scale
android:fromXScale="0.0"
android:fromYScale="0.0"
android:pivotX="50%"
android:pivotY="50%"
android:toXScale="1.0"
android:toYScale="1.0"
android:duration="2000">
</scale>
</set>