Android中动画主要有下面几种,帧动画(frame),补间动画(tween),属性动画(property)
我们平时项目中主要用的是帧动画和补间动画
帧动画需要我们准备一组静态图片,这些图片是通过分解动画得来的,静态图片连起来播放形成动画效果
我们在res目录下新建一个drawable目录,用来存放动画资源和xml文件
图片如下:
girl.xml 注意android:oneshot="false|true" 该属性控制动画是否重复播放,false代表重复播放<?xml version="1.0" encoding="utf-8"?>
android:oneshot="false"
>
android:drawable="@drawable/girl_1"
android:duration="200"/>
android:drawable="@drawable/girl_2"
android:duration="200"/>
android:drawable="@drawable/girl_3"
android:duration="200"/>
android:drawable="@drawable/girl_4"
android:duration="200"/>
android:drawable="@drawable/girl_5"
android:duration="200"/>
android:drawable="@drawable/girl_6"
android:duration="400"/>
android:drawable="@drawable/girl_7"
android:duration="400"/>
android:drawable="@drawable/girl_8"
android:duration="200"/>
android:drawable="@drawable/girl_9"
android:duration="200"/>
android:drawable="@drawable/girl_10"
android:duration="200"/>
android:drawable="@drawable/girl_11"
android:duration="200"/>
MainActivity.javapackage com.example.frameanim;
import android.app.Activity;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
public class MainActivity extends Activity {
private ImageView iv;
private AnimationDrawable mAnimationDrawable;
@Override
protected void onCreate(Bundle savedInstanceState) {
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(new OnClickListener() {
@Override
public void onClick(View v) {
if (!mAnimationDrawable.isRunning()) {
mAnimationDrawable.start();
} else if (mAnimationDrawable.isRunning()) {
mAnimationDrawable.stop();
}
}
});
}
}