一、补间动画(Tween)
补间动画,通过对View的内容进行一系列的图形变换(包括改变透明度、缩放、位移、旋转)来实现动画效果。动画效果的定义可以采用 XML 来做,也可以采用编码来做。
补间动画有4种类型:
动画类型 | 类名 |
---|---|
渐变透明度动画效果 | AlphaAnimation |
渐变尺寸缩放动画效果 | ScaleAnimation |
画面位置移动动画效果 | TranslateAnimation |
画面旋转动画效果 | RotateAnimation |
动画可以设置动画插入器,android自带的几种动画插入器:
1、Animation:
抽象类Animation是一个实现 android UI 界面动画效果的API,Animation是补间动画的基类,它的直接子类AlphaAnimation、ScaleAnimation、TranslateAnimation、RotateAnimation、AnimationSet提供一系列动画效果。
2、AlphaAnimation(透明度)
2.1、通过代码方式实现
/**
* 透明度 动画
*/
private void alphaClick(){
// 初始化 AlphaAnimation,参数1:开始透明度,参数2:结束透明度。
Animation animation = new AlphaAnimation(1,(float) 0.1);
// 持续时间
animation.setDuration(3000);
// 动画结束是否保持原样(true:保持,及不返回动画开始状态。false:不保持。)
animation.setFillAfter(false);
// 动画重复次数。-1为无穷次
animation.setRepeatCount(Animation.INFINITE);
// 参数为restart:直接变回动画开始状态,参数为reverse:渐变为动画开始状态。
animation.setRepeatMode(Animation.REVERSE);
imgShow.startAnimation(animation);
}
2.2、通过 xml 文件实现
第一步:定义 XML 文件:alpha.xml
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:fromAlpha="0.1"
android:toAlpha="1"
android:duration="3000"
android:fillAfter="true"
android:repeatCount="infinite"
android:repeatMode="reverse"
>
</alpha>
第二步:加载 XML 文件到指定的View上
Animation animation2 = AnimationUtils.loadAnimation(this,R.anim.alpha);
imgShow.startAnimation(animation2);
3、ScaleAnimation(缩放)
3.1、通过代码方式实现
/**
* 缩放 动画
*/
private void scaleClick(){
// 初始化 ScaleAnimation,参数1:开始X轴大小,参数2:结束X轴大小。
// 参数3:开始Y轴大小,参数4:结束Y轴大小。
// 参数5:默认为0,值为0:参数6无效,值为1:参数6有效;参数6:动画相对物件的X轴的开始位置。
// 参数7:默认为0,值为0:参数8无效,值为1:参数8有效;参数8:动画相对物件的Y轴的开始位置。
Animation animation = new ScaleAnimation(0.0f,1.0f, 0.0f,1.0f,
1,0.5f,1,0.5f);
// 持续时间
animation.setDuration(3000);
// 动画结束是否保持原样(true:保持,及不返回动画开始状态。false:不保持。)
animation.setFillAfter(false);
animation.setRepeatCount(3);
animation.setRepeatMode(2);
imgShow.startAnimation(animation);
}
3.2、通过 xml 文件实现
第一步:定义 XML 文件:scale.xml
<?xml version="1.0" encoding="utf-8"?>
<scale