持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第2天,点击查看活动详情
上一篇简单介绍了下动画的类型,主要分为三类,今天主要介绍第一类,也就是帧动画(Frame Animation)。
帧动画(Frame Animation)
什么是帧动画,字面的意思也可以理解,就是一帧一帧的播放动画,其实就是我们将需要展示在用户面前的动画通过拆分成很多张图片,通过控制依次显示这些图片,然后呈现在我们眼前的就像看电影一样,形成一个动画。
帧动画的实现
帧动画的实现很简单,首先我们需要对我们实现的动画效果用图片的方式拆分出来,然后通过AnimationDrawable来加载这些图片,通过start和stop方法来控制动画的播放和停止。 1.首先我们定义出这些图片,然后在我们项目的res下创建一个anim的文件夹,再新建一个xml文件,实现如下:
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false">
<item
android:drawable="@drawable/image_frame1"
android:duration="80" />
<item
android:drawable="@drawable/image_frame2"
android:duration="80" />
<item
android:drawable="@drawable/image_frame3"
android:duration="80" />
<item
android:drawable="@drawable/image_frame4"
android:duration="80" />
<item
android:drawable="@drawable/image_frame5"
android:duration="80" />
</animation-list>
2.创建一个我们需要加载动画的类,FrameAnimationActivity,简单的加载一个xml,添加2个按钮,一个开始,一个停止,再定义一个ImageView用来展示动画就哦了,具体代码就不贴了,说下里面的AnimationDrawable的使用吧:
private AnimationDrawable frameAnim;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
frameAnim = (AnimationDrawable) frame_image.getBackground();
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_start:
frameAnim.start();
break;
case R.id.btn_stop:
frameAnim.stop();
break;
}
}
具体的按钮初始化和布局文件就不贴了,使用起来是不是非常简单。
总结
基本上使用的方式就上面提到的,当然可以做到更高阶的使用,就是封装成一个自定义的view,然后直接传入一个需要加载的动画图片数据,就可以播放了,对外可以开放出开始和暂停的方法,有兴趣的可以研究一下,当然现在的安卓开发中已经很少用到帧动画了,大家可以选择了解下。