简介:
上篇blog写了View Animation,这里就简单的写写Drawable Animation,很多也是看别人blog写的东西,这里主要是记录一下自己所需要学的东西;
Drawable Animation(Frame Animation):帧动画,就好像GIF图一样,例如一些通过不同的drawable资源来实现的加载状态框;
实现:
Drawable Animation中的XML文件存放路径为(/res/drawable/filename.xml)
XML语法如下:
<?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>
注意:
animation-list标签是必须的,oneshot设置为true的时候那么动画只执行一次,设置为false则一直循环执行;
XML使用如下:
image.setBackgroundResource(R.anim.frame);
AnimationDrawable anim = (AnimationDrawable) image.getBackground();
anim.start();
注意:
anim.start();这条语句不能再oncreate方法中执行,不然的话动画只会执行到第一帧,因为Window对象还没有初始化;可以在onWindowFocusChange中执行;
JAVA Code代码实现如下:
AnimationDrawable anim = new AnimationDrawable();
for (int i = 1; i <= 4; i++) {
int id = getResources().getIdentifier("square" + i, "drawable", getPackageName());
Drawable drawable = getResources().getDrawable(id);
anim.addFrame(drawable, 300);
}
anim.setOneShot(false);
image.setBackgroundDrawable(anim);
anim.start();
如上代码所示,我们把square1,square2,square3,square4图片添加到AnimationDrawble里面;然后调用start方法执行;
最后:如果上面有写漏或者写错的地方,希望大家指出,谢谢;