1. 帧动画简介
帧动画非常容易理解,其实就是简单的由N张静态图片收集起来,然后我们通过控制依次显示 这些图片,因为人眼"视觉残留"的原因,会让我们造成动画的"错觉",跟放电影的原理一样!
而Android中实现帧动画,一般我们会用到前面讲解到的一个Drawable:AnimationDrawable先编写好Drawable,然后代码中调用start()以及stop()开始或停止播放动画
当然我们也可以在Java代码中创建逐帧动画,创建AnimationDrawable对象,然后调用 addFrame(Drawable frame,int duration)向动画中添加帧,接着调用start()和stop()而已
-
创建项目
-
导入资源, 将图片资源放入 mipmap 文件夹下
-
编写资源文件cat_gif.xml 在drawable文件夹下
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@mipmap/img_miao1"
android:duration="80"/>
<item android:drawable="@mipmap/img_miao2"
android:duration="80"/>
<item android:drawable="@mipmap/img_miao3"
android:duration="80"/>
<item android:drawable="@mipmap/img_miao4"
android:duration="80"/>
。。。
</animation-list>
(没有提示需要纯手打@mipmap(包名)/img_miao4(图片名))
4.在xml页面,添加<Imageview> 并设置其background
<ImageView
android:id="@+id/im_cat"
android:layout_width="340dp"
android:layout_height="340dp"
android:background="@drawable/cat_gif"/>
5. 在java文件中,获取imageview,并对其background进行动画设置
public class MainActivity extends AppCompatActivity {
private ImageView im_cat;
private AnimationDrawable anim;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
im_cat = findViewById(R.id.im_cat);