Android 之AnimationDrawable

本文详细介绍如何使用Android中的AnimationDrawable创建帧动画。通过实例演示了如何定义XML文件设置动画帧及持续时间,并展示了如何在代码中加载和播放这些动画。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

AnimationDrawable是Android实现动画的一种简单的形式。如果需要简单的动画,例如屏幕锁。这里用一个Demo来简单讲解下。

 

首先最基本的,我们可以参见DOC上的说明,它的资料最正宗!

Class Overview

An 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.

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.

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.

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 ()

以上的资料大家也可以在DOC中看的很明白。

一:新建一个工程AnimationDrawableDemo。
二:在res/drawable下面放入我们需要演示的图片。
lock_anim_00.png
lock_anim_02.png
lock_anim_04.png
lock_anim_06.png
lock_anim_08.png
lock_anim_10.png
lock_anim_12.png
lock_anim_14.png


新建一个Animation资源文件。文件如下:


三:在main.xml文件中导入一个ImageView控件。函数代码如下:



四:如果需要一打开就动画显示://mHandler.postDelayed(mRunnable, START_DELAY);
这句话的意思是开启一个线程,开始执行操作。

五:这样就基本完成了操作。最好还是些个Demo来测试练练手。






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值