Animation动画分为两类

1.Tweened Animations:该类Animations提供了旋转、移动、伸展和淡出等效果。 Alpha——淡入淡出, Scale——缩放效果, Rotate——旋转, Translate——移动效果。
2.Frame-by-frame Animations:这一类Animations可以创建一个Drawable序列,这些Drawable可以按照指定的时间间歇一个一个的显示。

TweenedAnimations使用步骤

1.创建一个AnimationSet对象(Animation子类);
2.增加需要创建相应的Animation对象;
3.更加项目的需求,为Animation对象设置相应的数据;
4.将Animatin对象添加到AnimationSet对象当中;
5.使用控件对象开始执行AnimationSet。

Animation的四个子类:  
AlphaAnimation、TranslateAnimation、ScaleAnimation、RotateAnimation

AlphaAnimation
1. 代码设置

//创建一个AnimationSet对象,参数为Boolean型,          
//true表示使用Animation的interpolator,false则是使用自己的           
AnimationSet animationSet = new AnimationSet(true);           
//创建一个AlphaAnimation对象,参数从完全的透明度,到完全的不透明           
AlphaAnimation alphaAnimation = new AlphaAnimation(1, 0);           
//设置动画执行的时间
alphaAnimation.setDuration(500);  
//将alphaAnimation对象添加到AnimationSet当中           
animationSet.addAnimation(alphaAnimation);           
//使用ImageView的startAnimation方法执行动画           
image.startAnimation(animationSet);

1、setDuration(long durationMills)设置动画持续时间(单位:毫秒)  
2、setFillAfter(Boolean fillAfter)如果fillAfter的值为true,则动画执行后,控件将停留在执行结束的状态  
3、setFillBefore(BooleanfillBefore)如果fillBefore的值为true,则动画执行后,控件将回到动画执行之前的状态  
4、setStartOffSet(longstartOffSet) 设置动画执行之前的等待时间  
5、setRepeatCount(int repeatCount)


  1. 也可以用xml定义 用XML定义的动画放在/res/anim/文件夹内

XML文件的根元素可以 为,,,,interpolator元素或(表示以上几个动画的集合,set可以嵌套)。默认情况下,所有动画是同时进行的,可以通过startOffset属性设置 各个动画的开始偏移(开始时间)来达到动画顺序播放的效果。
定义好动画的XML文件后,可以通过类似下面的代码对指定View应用动画。

ImageView Image = (ImageView)findViewById(R.id.Image);
Animation JumpAnimation=AnimationUtils.loadAnimation(this, R.anim.jump);
Image.startAnimation(JumpAnimation);

Interpolator定义了动画变化的速率,在Animations框架当中定义了一下几种Interpolator

AccelerateDecelerateInterpolator:在动画开始与结束的地方速率改变比较慢,在中间的时候速率快。
AccelerateInterpolator:在动画开始的地方速率改变比较慢,然后开始加速
CycleInterpolator:动画循环播放特定的次数,速率改变沿着正弦曲线
DecelerateInterpolator:在动画开始的地方速率改变比较慢,然后开始减速?
LinearInterpolator:动画以均匀的速率改变

1、在set标签中

android:interpolator="@android:anim/accelerate_interpolator"/>

2、如果在一个set标签中包含多个动画效果,如果想让这些动画效果共享一个Interpolator。

android:shareInterpolator="true"

3、如果不想共享一个interpolator,则设置android:shareInterpolator=”true”,并且需要在每一个动画效果处添加interpolator。
4、如果是在代码上设置共享一个interpolator,则可以在AnimationSet设置interpolator。

AnimationSet animationSet = newAnimationSet(true);animationSet.setInterpolator(new AccelerateInterpolator());

5、如果不设置共享一个interpolator则可以在每一个Animation对象上面设置interpolator。

AnimationSet animationSet = newAnimationSet(false);alphaAnimation.setInterpolator(new AccelerateInterpolator());rotateAnimation.setInterpolator(new DecelerateInterpolator());