Android之AnimationDrawable初识

时间:2024-04-21 16:42:37

Drawable animation可以加载Drawable资源实现帧动画。AnimationDrawable是实现Drawable animations的基本类。

这里用AnimationDrawable 简单模拟动态图的实现。

fragment_main 布局文件 ----  只需要放一个 ImageView即可

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.yztc.frameanimation.MainActivity" > <ImageView
android:id="@+id/iv_frame"
android:layout_width="match_parent"
android:layout_height="200dp"
android:background="@drawable/girl_and_boy" /> </RelativeLayout>

fragment_main

girl_and_boy 布局文件  ----  实现动画

推荐用XML文件的方法实现Drawable动画,不推荐在代码中实现。这种XML文件存放在工程中res/drawable/目录下。XML文件的指令(即属性)为动画播放的顺序和时间间隔。

 <?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- onshot 属性表示动画只执行一次 --> <!-- duration 表示持续时间 -->
<item
android:drawable="@drawable/girl_1"
android:duration="200">
</item>
<item
android:drawable="@drawable/girl_2"
android:duration="200">
</item>
<item
android:drawable="@drawable/girl_3"
android:duration="200">
</item>
<item
android:drawable="@drawable/girl_4"
android:duration="200">
</item>
<item
android:drawable="@drawable/girl_5"
android:duration="300">
</item>
<item
android:drawable="@drawable/girl_6"
android:duration="400">
</item>
<item
android:drawable="@drawable/girl_7"
android:duration="500">
</item>
<item
android:drawable="@drawable/girl_8"
android:duration="400">
</item>
<item
android:drawable="@drawable/girl_9"
android:duration="300">
</item>
<item
android:drawable="@drawable/girl_10"
android:duration="200">
</item>
<item
android:drawable="@drawable/girl_11"
android:duration="200">
</item> </animation-list>

girl_and_boy

MainActivity

 package com.dragon.android.initgif;

 import android.app.Activity;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.widget.ImageView; public class MainActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_main); ImageView ivFrame = (ImageView) findViewById(R.id.iv_frame);
// 得到一个动画图片
AnimationDrawable background = (AnimationDrawable) ivFrame
.getBackground();
// 开始播放
background.start();
// 停止方法.
// background.stop();
} }

图片素材

girl_1.gifAndroid之AnimationDrawable初识   girl_2.gifAndroid之AnimationDrawable初识     girl_3.gifAndroid之AnimationDrawable初识

girl_4.gifAndroid之AnimationDrawable初识    girl_5.gifAndroid之AnimationDrawable初识     girl_6.gifAndroid之AnimationDrawable初识

girl_7.gifAndroid之AnimationDrawable初识    girl_8.gifAndroid之AnimationDrawable初识     girl_9.gifAndroid之AnimationDrawable初识

girl_10.gifAndroid之AnimationDrawable初识  girl_11.gifAndroid之AnimationDrawable初识