一.Frame动画简介
Frame动画又称帧动画,在于Tween明显的不同就是Tween动画只定义起点与终点,但是Frame动画要把动画的每一帧都要定义,所以它需要一个list来装所以item的帧,而且它的类型是AnimationDrawable,是放在drawable文件夹下的。
1.文件目录:res/drawable/filename.xml
2.编译资源数据类型 AnimationDrawable
以下就是一个基本的Frame定义
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot=["true" | "false"] >
<item android:drawable="@[package:]drawable/drawable_resource_name"
android:duration="integer" />
</animation-list>
二.Frame动画属性
(1)<animation-list>根元素
必须作为根元素,包含一个或者多个根元素
属性:android:oneshot :true:只执行一次动画,false:循环执行
(2)<item>一帧独立动画
一帧独立动画,必须是<animation-list> >的子元素
它的属性有:
- android:drawable Drawable资源,用于这一帧的图片
- android:duration **Integer类型.该帧的时长,单位为毫秒milliseconds. **
三. Frame动画案例
res/anim/rocket_thrust.xml:
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false">
<item android:drawable="@drawable/rocket_thrust1" android:duration="200" />
<item android:drawable="@drawable/rocket_thrust2" android:duration="200" />
<item android:drawable="@drawable/rocket_thrust3" android:duration="200" />
</animation-list>
它的使用:
ImageView rocketImage = (ImageView) findViewById(R.id.rocket_image);
rocketImage.setBackgroundResource(R.drawable.rocket_thrust);
rocketAnimation = (AnimationDrawable) rocketImage.getBackground();
rocketAnimation.start();