Android的animation-list是实现逐帧动画最简单方式,通过XML定义drawable序列并用AnimationDrawable启动;需注意播放时机、图片尺寸统一、帧数限制及内存优化。
Android 的 animation-list 是实现逐帧动画(Frame-by-Frame Animation)最简单直接的方式,本质是把一组 Drawable 按顺序轮流显示,类似 GIF。它写在 XML 中,放在 res/drawable/ 目录下,然后通过 ImageView 或其他支持背景动画的控件启动。
新建一个 XML 文件,比如 res/drawable/anim_loading.xml,内容结构如下:
说明:
– android:oneshot="false" 表示循环播放;设为 true 则只播一次
– 每个 对应一帧,android:drawable 引用本地图片资源(建议用 PNG,尺寸统一)
– android:duration 是该帧显示毫秒数,如 100 表示 0.1 秒
不能直接 setDrawable,要先获取 AnimationDrawable 实例再调用 start():
nDrawable anim = (AnimationDrawable) iv.getDrawable();注意:
– 必须等 View 完全初始化(例如在 onWindowFocusChanged(true) 或 post(Runnable) 里调用 start())否则可能不播放
– 不支持在 XML 中直接设置为 background 并自动播放,必须手动 start
anim.stop() 再重置animation-list 依然轻量可靠基本上就这些。写法简单,关键是时机控制和资源管理到位。