动画
2种Animation模式:
1. Tween Animation:通过对场景里的对象不断做图像变换(平移、缩放、旋转、淡入淡出)产生动画效果,即是一种渐变动画;
2. Frame Animation:顺序播放事先做好的图像,是一种画面转换动画。
Tween Animation
两种实现方式xml和code
xml:
alpha 渐变透明度动画效果
scale 渐变尺寸伸缩动画效果
translate 画面转换位置移动动画效果
rotate 画面转移旋转动画效果
代码中set为集合类,xml中同样
单个动画格式如下
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha>
</set>
多个动画混合
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha>
<scale>
<translate>
<rotate>
</set>
代码调用:
mAnimation = AnimationUtils.loadAnimation(ExpAnimation.this, R.layout.my_rotate);
v.startAnimation(mAnimation);
存放路径:随便放 试了res/anim 和 res/layout都可以。
startOffset属性延迟多久开始动画,当多个效果一起显示时,可以通过这个属性调节动画开始时间,达到先后顺序的效果。
code:
AlphaAnimation渐变透明度动画效果
ScaleAnimation渐变尺寸伸缩动画效果
TranslateAnimation画面转换位置移动动画效果
RotateAnimation画面转移旋转动画效果
单个动画
mAnimation = new AlphaAnimation(0.1f, 1.0f);
v.startAnimation(mAnimation);
多个动画混合
AnimationSet mAnimationSet = new AnimationSet(true);
mAnimation = new AlphaAnimation(0.1f, 1.0f);
mAnimationSet.addAnimation(mAnimation);
v.startAnimation(mAnimationSet );
Frame Animation
xml中定义播放帧数据
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="true" >
<item
android:drawable="@drawable/but1"
android:duration="200"/>
</animation-list>
code中调用
mImageView.setImageResource(R.anim.my_frame);//android:src中不设置,在这里设置
AnimationDrawable mAnimationDrawable=(AnimationDrawable)mImageView.getDrawable();//取到动画,后面可以控制该动画,
mAnimationDrawable.start();