Android 逐帧动画

来源:互联网 发布:在线互动课堂源码 编辑:程序博客网 时间:2024/05/29 18:17

1、什么事逐帧动画

在Android里面,逐帧动画的实现原理跟电影的播放原理是一样的,通过一张一张图片快速的播放形成视觉上的影像残留,这就是逐帧动画。


2、新建动画列表

拷贝三张图片放在Drawable文件夹下,文件名分别起anim_1、anim_2、anim_3,再在Drawable下新建一个anim_list.xml,内容如下:


<?xml version="1.0" encoding="utf-8"?><animation-list xmlns:android="http://schemas.android.com/apk/res/android">    <item android:drawable="@drawable/anim_1"        android:duration="300"></item>    <item android:drawable="@drawable/anim_2"        android:duration="300"></item>    <item android:drawable="@drawable/anim_3"        android:duration="300"></item></animation-list>

animatio-list就是逐帧动画集合,item代表每一帧,android:drawable的意思是该帧的图片,android:duration意思是该帧的持续时间。

3、使用动画

在xml中定义一个ImageView,并使用动画资源


<ImageView    android:layout_width="300dp"    android:layout_height="100dp"    android:src="@drawable/anim_list"    android:id="@+id/anim_image"/>

在Activity中开始和结束动画


public class ZhuzhenActivity extends AppCompatActivity {    private AnimationDrawable anim;//动画资源    private Button start_btn,stop_btn;    private ImageView anim_image;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_zhuzhen);        start_btn=(Button)findViewById(R.id.start_btn);        stop_btn=(Button)findViewById(R.id.stop_btn);        anim_image=(ImageView)findViewById(R.id.anim_image);        anim=(AnimationDrawable)anim_image.getDrawable();        start_btn.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                anim.start();            }        });        stop_btn.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                anim.stop();            }        });    }}