文章目录
一.前言
Android的动画大致分为三种 ,分别是 逐帧动画 ,补间动画 ,属性动画
二.逐帧动画
逐帧动画的工作原理很简单,其实就是将一个完整的动画拆分成一张张单独的图片,然后再将它们连贯起来进行播放,类似于动画片的工作原理。
步骤:
- 在res/drawable目录下定义一个XML文件,根节点为系统提供的animation-list,然后放入定义更好的图片;
- 使用AnimationDrawable类播放第一步定义好的Drawable中的图片,形成动画效果;
示例代码,第一步,创建Drawable文件:
<?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/image1" android:duration="500"/>
<item android:drawable="@drawable/image2" android:duration="500"/>
<item android:drawable="@drawable/image3" android:duration="500"/>
</animation-list>
说明:
- android:oneshot=“false”: 表示是否重复播放动画,还是只播放一次;
- 每个item都有Drawable和duration属性,Drawable表示我们要播放的图片;duration表示这张图播放的时间;
示例代码,第二步,用AnimationDrawable播放动画:
button = findViewById(R.id.button);
button.setBackgroundResource(R.drawable.frame_animation);//把Drawable设置为button的背景
AnimationDrawable drawable = (AnimationDrawable) button.getBackground();//拿到这个我们定义的Drawable,实际也就是AnimationDrawable
drawable