Drawable 动画其实就是 Frame 动画(帧动画),它允许你实现像播放幻灯片一样的效果,这种动画的实质其实是 Drawable, 所以这种动画的 XML 定义方式文件一般放在 res/drawable/ 目录下。
我们依旧可以使用 xml 或者 java 方式实现帧动画。但是依旧推荐使用 xml,具体如下:
<animation-list> 必须是根节点,包含一个或者多个<item>元素,属性有:
- android:oneshot true 代表只执行一次,false 循环执行。
- <item> 类似一帧的动画资源。
<item> animation-list 的子项,包含属性如下:
- android:drawable 一个 frame 的 Drawable 资源。
- android:duration 一个 frame 显示多长时间。
使用步骤
- 定义一个xml文件
<!-- 注意:文件位于res/drawable/目录下 -->
<?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>
- 在代码中调用
ImageView rocketImage = (ImageView) findViewById(R.id.rocket_image);
rocketImage.setBackgroundResource(R.drawable.rocket_thrust);
rocketAnimation = (AnimationDrawable) rocketImage.getBackground();
rocketAnimation.start();