1Animations
它是指显示的动画效果,这些效果可以应用在绝大多数的控件里。
2Animations的分类
第一类:Tweened Animations
该类Animations提供了旋转(RotateAnimation),移动(TranslateAnimation),伸展(ScaleAnimation)
和谈出(AlphaAnimation)的效果。Animation抽象类下的五大子类:
AlphaAnimation, AnimationSet, RotateAnimation, ScaleAnimation, TranslateAnimation
其中AnimationSet的是用来装载多个其他的Animation,这样一个控件可以显示多个动画效果。
第二类:Frame-by-Frame Animations
这一类Animations可以创建一个Drawable序列,这些Drawable可以按照指定的时间间隙一个一个的显示
3.Tweened Animations使用
1.创建一个AnimationSet对象。
2.创建(一个或多个)Animation对象(即除了Set以外的)。
3.设置Animation对象的属性,AnimationSet属性。
4.调用控件的方法startAnimation(animtion);//该控件就是要使用动画效果的控件
1 public class AnimationTestActivity extends Activity { 2 3 /*animation:动画演示 4 * 1.创建AnimationSet 5 * 2.创建Animation对象: 6 * AlphaAnimation, RotateAnimation, 7 * ScaleAnimation, TranslateAnimation 8 * 3.设置该对象的参数 9 * 4.set添加该对象进去 10 * 5.使用控件对象执行set 11 * */ 12 private Button alphabutton=null; 13 private Button rotatebutton=null; 14 private Button scalebutton=null; 15 private Button translatebutton=null; 16 private ImageView imageview=null; 17 /** Called when the activity is first created. */ 18 @Override 19 public void onCreate(Bundle savedInstanceState) { 20 super.onCreate(savedInstanceState); 21 setContentView(R.layout.main); 22 alphabutton=(Button)findViewById(R.id.alphabutton); 23 rotatebutton=(Button)findViewById(R.id.rotatebutton); 24 scalebutton=(Button)findViewById(R.id.scalebutton); 25 translatebutton=(Button)findViewById(R.id.translatebutton); 26 imageview=(ImageView)findViewById(R.id.imageview); 27 alphabutton.setOnClickListener(new OnClickListener() { 28 29 public void onClick(View v) { 30 // TODO Auto-generated method stub 31 //1.创建AnimationSet对象 32 AnimationSet set=new AnimationSet(true); 33 //2.创建alphaanimation对象 34 AlphaAnimation aa=new AlphaAnimation(1, 0); 35 aa.setDuration(1000); 36 //3.添加进去 37 set.addAnimation(aa); 38 //4.控件启动该set 39 imageview.startAnimation(set); 40 } 41 }); 42 rotatebutton.setOnClickListener(new OnClickListener() { 43 44 public void onClick(View v) { 45 // TODO Auto-generated method stub 46 //1.创建AnimationSet对象 47 AnimationSet set=new AnimationSet(true); 48 //2.创建alphaanimation对象 49 RotateAnimation aa=new RotateAnimation(70,0,70,0); 50 set.setDuration(1000); 51 set.setFillAfter(true); 52 set.setFillBefore(false); 53 //3.添加进去 54 set.addAnimation(aa); 55 //4.控件启动该set 56 imageview.startAnimation(set); 57 } 58 }); 59 60 } 61 }
4.Frame-by-Frame Animations使用
res/anim/目录下的animationset的xml文件
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator" > <alpha android:fromAlpha="0.1" android:toAlpha="1.0" android:duration="3000" /> <rotate android:fromDegrees="0" android:toDegrees="360" android:pivotX="0.5" android:pivotY="0.5" android:duration="3000" /> </set>
public class AnimationTest2Activity extends Activity { /** 使用自定义的Animation*/ private Button alphabutton=null; private ImageView imageview=null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); alphabutton=(Button)findViewById(R.id.alphabutton); imageview=(ImageView)findViewById(R.id.imageview); alphabutton.setOnClickListener(new OnClickListener() { public void onClick(View v) { //1.获得alphaanimationset对象,R.anim.alpha为我们创建的alphaanimationset的xml文件 Animation autils= AnimationUtils.loadAnimation(AnimationTest2Activity.this,R.anim.alpha); //2.控件启动该set imageview.startAnimation(autils); } }); } }
5.Interpolator和视频效果(采用多张图片快速显示)
时间: 2024-10-14 06:47:48