Android 帧动画(Frame Animation)

来源:互联网 发布:成都富士康java 编辑:程序博客网 时间:2024/05/22 07:41

前言

自己从事Android这个工作,但是很少写这样的帖子。然后想把自己学习到的点点滴滴都记录下来然后分享给大家。


Android中的动画

首先我们知道Android中的动画有传统动画和属性动画,传统的动画就是我们这里的(帧动画和补间动画)。今天就像大家介绍下帧动画。

1、帧动画
帧动画其实就可以理解为把多张连续的图片一帧一帧的播放出来,就像GIF,或者有点像最早的电影一样,其实是图片只是加快了切换的速度在视觉上就像电影一样。这种动画比较依赖UI。

我们先来看一下项目的结构

在res文件的drawable里面创建一个xml文件,文件名字看个人的喜好。我这里放的图片是在网上随便找的图片。

让我们 看看animation里面是怎么写的吧

<animation-list xmlns:android="http://schemas.android.com/apk/res/android"    android:oneshot="false">    <item android:drawable="@drawable/a" android:duration="50"></item>    <item android:drawable="@drawable/b" android:duration="50"></item>    <item android:drawable="@drawable/c" android:duration="50"></item>    <item android:drawable="@drawable/d" android:duration="50"></item>    <item android:drawable="@drawable/e" android:duration="50"></item>    <item android:drawable="@drawable/f" android:duration="50"></item>    <item android:drawable="@drawable/g" android:duration="50"></item>    <item android:drawable="@drawable/h" android:duration="50"></item>    <item android:drawable="@drawable/i" android:duration="50"></item>    <item android:drawable="@drawable/j" android:duration="50"></item>    <item android:drawable="@drawable/k" android:duration="50"></item>    <item android:drawable="@drawable/l" android:duration="50"></item>    <item android:drawable="@drawable/m" android:duration="50"></item>    <item android:drawable="@drawable/n" android:duration="50"></item>    <item android:drawable="@drawable/o" android:duration="50"></item></animation-list>

drawable里面就是放你的图片,duration每张图片执行的时间。
android:oneshot=”false”这个的意思是循环 false无限循环 true不循环


再来看看xml的布局是怎么的,其实就很简单

<ImageView        android:id="@+id/image"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:background="@drawable/animation"/>

就是一个ImageView在他的background里面来接收刚刚的动画animation


再来看看MainActivity中

 img = (ImageView) findViewById(R.id.image); AnimationDrawable animationDrawable = (AnimationDrawable) img.getBackground(); //animationDrawable.setOneShot(false); animationDrawable.start();

这个地方也可以通过代码来设置是否无限循环。

这一篇就占时先说的这里。