在android中实现简单的帧动画,如在清理缓存的时候会出现的一扫一扫的动画,在这里我们实现一下,
首先,在xml中写出要显示的图片,和每张图片的播放间隔,其中是200毫秒,也就是0.2秒
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:drawable="@drawable/broom_left"
android:duration="200">
</item>
<item
android:drawable="@drawable/broom_center"
android:duration="200">
</item>
<item
android:drawable="@drawable/broom_right"
android:duration="200">
</item>
</animation-list>
然后再布局文件里放一个view或者ImageView设置背景为上一个xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#775566" >
<ImageView
android:id="@+id/im_animation"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:background="@drawable/broom_animation" />
</RelativeLayout>
之后再主函数里声明AnimationDrawable和imageview,接着在start一下AnimationDrawable至于AnimationDrawable的一些操作可以在网上查找一些
package com.example.deletcache;
import android.app.Activity;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.widget.ImageView;
public class MainActivity extends Activity {
private AnimationDrawable animation;
private ImageView img;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}
private void initView() {
// TODO Auto-generated method stub
// animation = (AnimationDrawable) findViewById(R.id.im_animation);
img = (ImageView) findViewById(R.id.im_animation);
animation = (AnimationDrawable) img.getBackground();
animation.start();
}
}
其中的
animation = (AnimationDrawable) img.getBackground();
不要忘了