动画在Android 开发中经常会被用到,好的动画效果可以达到事半功倍的效果,本文主要是帧动画的实现。帧动画主要实现原理是类似播放电影一样,一帧帧的播放预存好的图片,当播放速度大于人眼视觉存留的速度时,就会成为动画效果。其实手机中的开机动画也是帧动画,bootanimation .zip中存放大量的图片。



  1. 创建帧动画播放控制的xml文件
  2. 设置播放帧动画载体
  3. 使用AnimationDrawable 开启 、关闭帧动画
  4. 实现效果及素材



欢迎关注微信公众号:程序员Android
公众号ID:ProgramAndroid
获取更多信息


Android 动画使用详解(一) 帧动画_xml

微信公众号:ProgramAndroid


我们不是牛逼的程序员,我们只是程序开发中的垫脚石。
我们不发送红包,我们只是红包的搬运工。


1. 创建帧动画播放控制的xml文件

使用方法如下:

在anim 文件夹下创建一个xml,里面放置用于播放的一帧一帧图片

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http:///apk/res/android" >

<item
android:drawable="@drawable/bird0001_risk"
android:duration="80"/>
<item
android:drawable="@drawable/bird0002_risk"
android:duration="80"/>
<item
android:drawable="@drawable/bird0003_risk"
android:duration="80"/>
<item
android:drawable="@drawable/bird0004_risk"
android:duration="80"/>
<item
android:drawable="@drawable/bird0005_risk"
android:duration="80"/>
<item
android:drawable="@drawable/bird0006_risk"
android:duration="80"/>
<item
android:drawable="@drawable/bird0007_risk"
android:duration="80"/>
<item
android:drawable="@drawable/bird0008_risk"
android:duration="80"/>
<item
android:drawable="@drawable/bird0009_risk"
android:duration="80"/>
<item
android:drawable="@drawable/bird0010_risk"
android:duration="80"/>
<item
android:drawable="@drawable/bird0011_risk"
android:duration="80"/>
<item
android:drawable="@drawable/bird0012_risk"
android:duration="80"/>
<item
android:drawable="@drawable/bird0013_risk"
android:duration="80"/>
<item
android:drawable="@drawable/bird0014_risk"
android:duration="80"/>
<item
android:drawable="@drawable/bird0015_risk"
android:duration="80"/>
<item
android:drawable="@drawable/bird0016_risk"
android:duration="80"/>
<item
android:drawable="@drawable/bird0017_risk"
android:duration="80"/>
<item
android:drawable="@drawable/bird0018_risk"
android:duration="80"/>
<item
android:drawable="@drawable/bird0019_risk"
android:duration="80"/>
<item
android:drawable="@drawable/bird0020_risk"
android:duration="80"/>

</animation-list>

2.设置播放帧动画载体

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http:///apk/res/android"
xmlns:tools="http:///tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="wang.jie.com.frameanimation.MainActivity">

<ImageView
android:id="@+id/img"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerInParent="true"
android:background="@drawable/frame_animation"

/>
</RelativeLayout>


  1. 使用AnimationDrawable 开启 、关闭帧动画


ImageView imageView= (ImageView) findViewById(R.id.img);
//AnimationDrawable 用来创建帧动画的对象
AnimationDrawable mAnimationDrawable= (AnimationDrawable) imageView.getBackground();

//开始帧动画
mAnimationDrawable.start();
//停止帧动画
// mAnimationDrawable.stop();
}

4.实现效果及素材

  • 实现效果

Android 动画使用详解(一) 帧动画_android_02

飞翔的小鸟

  • 素材

Android 动画使用详解(一) 帧动画_android_03

bird0001_risk.png

Android 动画使用详解(一) 帧动画_帧动画_04

bird0002_risk.png

Android 动画使用详解(一) 帧动画_帧动画_05

bird0003_risk.png

Android 动画使用详解(一) 帧动画_帧动画_06

bird0004_risk.png

Android 动画使用详解(一) 帧动画_android_07

bird0005_risk.png

Android 动画使用详解(一) 帧动画_帧动画_08

bird0006_risk.png

Android 动画使用详解(一) 帧动画_xml_09

bird0007_risk.png

Android 动画使用详解(一) 帧动画_帧动画_10

bird0008_risk.png

Android 动画使用详解(一) 帧动画_xml_11

bird0009_risk.png

Android 动画使用详解(一) 帧动画_android_12

bird0010_risk.png

Android 动画使用详解(一) 帧动画_帧动画_13

bird0011_risk.png

Android 动画使用详解(一) 帧动画_xml_14

bird0012_risk.png

Android 动画使用详解(一) 帧动画_android_15

bird0013_risk.png

Android 动画使用详解(一) 帧动画_xml_16

bird0014_risk.png

Android 动画使用详解(一) 帧动画_帧动画_17

bird0015_risk.png

Android 动画使用详解(一) 帧动画_xml_18

bird0016_risk.png

Android 动画使用详解(一) 帧动画_xml_19

bird0017_risk.png

Android 动画使用详解(一) 帧动画_帧动画_20

bird0018_risk.png

Android 动画使用详解(一) 帧动画_xml_21

bird0019_risk.png

Android 动画使用详解(一) 帧动画_帧动画_22

bird0020_risk.png


至此,帧动画的实现已经完成


Android 动画使用详解(一) 帧动画_xml_23

Android 动画使用详解(一) 帧动画_帧动画_24

至此,本篇已结束,如有不对的地方,欢迎您的建议与指正。同时期待您的关注,感谢您的阅读,谢谢!

Android 动画使用详解(一) 帧动画_帧动画_25