Android中动画主要有下面几种,帧动画(frame),补间动画(tween),属性动画(property)

我们平时项目中主要用的是帧动画和补间动画


帧动画需要我们准备一组静态图片,这些图片是通过分解动画得来的,静态图片连起来播放形成动画效果

我们在res目录下新建一个drawable目录,用来存放动画资源和xml文件

图片如下:


girl.xml 注意android:oneshot="false|true" 该属性控制动画是否重复播放,false代表重复播放

<?xmlversion="1.0"encoding="utf-8"?><animation-listxmlns:android="http://schemas.android.com/apk/res/android"android:oneshot="false"><itemandroid:drawable="@drawable/girl_1"android:duration="200"/><itemandroid:drawable="@drawable/girl_2"android:duration="200"/><itemandroid:drawable="@drawable/girl_3"android:duration="200"/><itemandroid:drawable="@drawable/girl_4"android:duration="200"/><itemandroid:drawable="@drawable/girl_5"android:duration="200"/><itemandroid:drawable="@drawable/girl_6"android:duration="400"/><itemandroid:drawable="@drawable/girl_7"android:duration="400"/><itemandroid:drawable="@drawable/girl_8"android:duration="200"/><itemandroid:drawable="@drawable/girl_9"android:duration="200"/><itemandroid:drawable="@drawable/girl_10"android:duration="200"/><itemandroid:drawable="@drawable/girl_11"android:duration="200"/></animation-list>

MainActivity.java

packagecom.example.frameanim;importandroid.app.Activity;importandroid.graphics.drawable.AnimationDrawable;importandroid.os.Bundle;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.widget.ImageView;publicclassMainActivityextendsActivity{privateImageViewiv;privateAnimationDrawablemAnimationDrawable;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);iv=(ImageView)findViewById(R.id.iv);iv.setBackgroundResource(R.drawable.girl);//将xml动画资源设置为ImageView的背景mAnimationDrawable=(AnimationDrawable)iv.getBackground();//获取设置的动画iv.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewv){if(!mAnimationDrawable.isRunning()){mAnimationDrawable.start();}elseif(mAnimationDrawable.isRunning()){mAnimationDrawable.stop();}}});}}