Android动画主要有三种:view动画,帧动画,属性动画。
1.view动画:也叫补间动画,通过对场景的对象不断做图像变换(平移,缩放,旋转,透明度)从而产生动画效果,是一种渐进式动画。
四种动画效果对应四种子类:
动画效果 | 标签 | java类 |
平移动画 | <translate> | TranslateAnimation |
缩放动画 | <scale> | ScaleAnimation |
旋转动画 | <rorate> | RotateAnimation |
透明度动画 | <alpha> | AlphaAnimation |
使用view动画,首先要创建动画的xml文件,文件路径为:res/res/anim/animation_test.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:android1="http://schemas.android.com/apk/res/android"
android:duration="2000"
android1:fillAfter="false"
android:repeatMode="reverse"
android:shareInterpolator="true"
android:startOffset="500"
android:zAdjustment="normal">
<rotate
android:fromDegrees="0"
android:pivotX="50%"
android:pivotY="50%"
android:repeatCount="3"
android:toDegrees="360"
/>
<scale
android:fromXScale="50%"
android:fromYScale="50%"
android:pivotX="50%"
android:pivotY="50%"
android:repeatCount="3"
android:toXScale="100%"
android:toYScale="100%"
/>
<translate
android:fromXDelta="-30%p"
android:fromYDelta="0"
android:repeatCount="3"
android:toXDelta="30%p"
android:toYDelta="0"
/>
<alpha
android:fromAlpha="1"
android:repeatCount="3"
android:toAlpha="0.2"
/>
</set>
设置动画
/**
*动画测试*
* */
//补间动画
animation = AnimationUtils.loadAnimation(this, R.anim.animation_test);
animation.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
Toast.makeText(MainActivity.this, "补间动画开始", Toast.LENGTH_LONG).show();
}
@Override
public void onAnimationEnd(Animation animation) {
Toast.makeText(MainActivity.this, "补间动画结束", Toast.LENGTH_LONG).show();
}
@Override
public void onAnimationRepeat(Animation animation) {
Toast.makeText(MainActivity.this, "补间动画重复", Toast.LENGTH_LONG).show();
}
});
testButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
testButton.startAnimation(animation);
}
});
动画效果: