AnimationDrawable
包android.graphics.drawable.AnimationDrawable
Class OverviewAn object used to create frame-by-frame animations, defined by a series of Drawable objects, which can be used as a View object's background.
通过一系列可以绘制的对象,可以创建一帧一帧的动画的类,而且可以用作view的background
The simplest way to create a frame-by-frame animation is to define the animation in an XML file, placed in the res/drawable/ folder, and set it as the background to a View object. Then, call run() to start the animation.
创建frame动画的最最简单的方法是通过动画的xml文件(放在res/drawble下面),把它设置为一个view的背景,然后start该动画
An AnimationDrawable defined in XML consists of a single <animation-list> element, and a series of nested <item> tags. Each item defines a frame of the animation. See the example below.
AnimationDrawble可以定义xml根元素是<animation-list>子元素是一系列的<item>,每一个item都是每一个动画的一帧,看下面的例子
:
spin_animation.xml file in res/drawable/ folder
<!-- Animation frames are wheel0.png -- wheel5.png files inside the
res/drawable/ folder -->
<animation-list android:id="selected" android:oneshot="false">
<item android:drawable="@drawable/wheel0" android:duration="50" />
<item android:drawable="@drawable/wheel1" android:duration="50" />
<item android:drawable="@drawable/wheel2" android:duration="50" />
<item android:drawable="@drawable/wheel3" android:duration="50" />
<item android:drawable="@drawable/wheel4" android:duration="50" />
<item android:drawable="@drawable/wheel5" android:duration="50" />
</animation-list>Here is the code to load and play this animation.
下面的是对动画的调用
// Load the ImageView that will host the animation and
// set its background to our AnimationDrawable XML resource.
ImageView img = (ImageView)findViewById(R.id.spinning_wheel_image);
img.setBackgroundResource(R.drawable.spin_animation);
// Get the background, which has been compiled to an AnimationDrawable object.
AnimationDrawable frameAnimation = (AnimationDrawable) img.getBackground();
// Start the animation (looped playback by default).
frameAnimation.start()
Summary
XML Attributes |
|||||||||||
Attribute Name |
Related Method |
Description |
|
|
|
|
|
|
|
|
|
|
Reference to a drawable resource to use for the frame. Item的元素,指定当前帧的动画资源 |
|
|
|
|
|
|
|
|
|
|
|
Amount of time (in milliseconds) to display this frame. 一帧持续的时间 |
|
|
|
|
|
|
|
|
|
|
|
If true, the animation will only run a single time and then stop. 是否只播放一次,默认是true |
|
|
|
|
|
|
|
|
|
|
|
If true, allows the drawable's padding to change based on the current state that is selected. 可以更改动画资源的padding |
|
|
|
|
|
|
|
|
|
|
|
Provides initial visibility state of the drawable; the default value is false.
|
|
|
|
|
|
|
|
|
|
Public Constructors |
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
Public Methods |
|||||||||||
void |
addFrame(Drawable frame, int duration) Add a frame to the animation 增加一帧 |
|
|
|
|
|
|
|
|
|
|
int |
getDuration(int i) 获得持续时间 |
|
|
|
|
|
|
|
|
|
|
getFrame(int index) 获得第几个frame |
|
|
|
|
|
|
|
|
|
|
|
int |
获得几个frame |
|
|
|
|
|
|
|
|
|
|
void |
inflate(Resources r, XmlPullParser parser, AttributeSet attrs)
|
|
|
|
|
|
|
|
|
|
|
boolean |
是否循环播放 |
|
|
|
|
|
|
|
|
|
|
|
|