本文实例为大家分享了利用animation-list实现帧动画的具体代码,供大家参考,具体内容如下

将要顺序播放的图片放在资源目录下

再drawable目录下新建animation1文件和animation2文件  一个是按顺序显示动画,一个是倒序显示动画,

顺序显示动画文件:animation1.xml

<?xml version="1.0" encoding="utf-8"?>
<!--
  根标签为animation-list,其中oneshot代表着是否只展示一遍,设置为false会不停的循环播放动画
  根标签下,通过item标签对动画中的每一个图片进行声明
  android:duration 表示展示所用的该图片的时间长度
 -->
<animation-list
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:oneshot="true"
 >
  <item android:drawable="@drawable/icon1" android:duration="150"></item>
  <item android:drawable="@drawable/icon2" android:duration="150"></item>
  <item android:drawable="@drawable/icon3" android:duration="150"></item>
  <item android:drawable="@drawable/icon4" android:duration="150"></item>
  <item android:drawable="@drawable/icon5" android:duration="150"></item>
  <item android:drawable="@drawable/icon6" android:duration="150"></item>
</animation-list> 

倒序显示动画文件:animation2.xml

<?xml version="1.0" encoding="utf-8"?>
<!--
  根标签为animation-list,其中oneshot代表着是否只展示一遍,设置为false会不停的循环播放动画
  根标签下,通过item标签对动画中的每一个图片进行声明
  android:duration 表示展示所用的该图片的时间长度
 -->
<animation-list
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:oneshot="true"
 >
  <item android:drawable="@drawable/icon6" android:duration="150"></item>
  <item android:drawable="@drawable/icon5" android:duration="150"></item>
  <item android:drawable="@drawable/icon4" android:duration="150"></item>
  <item android:drawable="@drawable/icon3" android:duration="150"></item>
  <item android:drawable="@drawable/icon2" android:duration="150"></item>
  <item android:drawable="@drawable/icon1" android:duration="150"></item>
</animation-list>

布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:orientation="vertical">

  <ImageView android:id="@+id/animationIV"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:padding="5px"
      android:src="@drawable/animation1"/>

  <Button android:id="@+id/buttonA"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:padding="5px"
    android:text="顺序显示" />

  <Button android:id="@+id/buttonB"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:padding="5px"
    android:text="停止" />

  <Button android:id="@+id/buttonC"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:padding="5px"
    android:text="倒序显示" />

</LinearLayout>

Activity文件

package org.shuxiang.test;

import android.app.Activity;
import android.graphics.drawable.AnimationDrawable;

import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.Button;
import android.widget.ImageView;

public class Activity10 extends Activity
{
  private ImageView animationIV;
  private Button buttonA, buttonB, buttonC;
  private AnimationDrawable animationDrawable;
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.test10);


    animationIV = (ImageView) findViewById(R.id.animationIV);
    buttonA = (Button) findViewById(R.id.buttonA);
    buttonB = (Button) findViewById(R.id.buttonB);
    buttonC = (Button) findViewById(R.id.buttonC);

    buttonA.setOnClickListener(new OnClickListener()
    {
      @Override
      public void onClick(View v) {
        // TODO Auto-generated method stub
        animationIV.setImageResource(R.drawable.animation1);
        animationDrawable = (AnimationDrawable) animationIV.getDrawable();
        animationDrawable.start();
      }

    });

    buttonB.setOnClickListener(new OnClickListener()
    {
      @Override
      public void onClick(View v) {
        // TODO Auto-generated method stub
        animationDrawable = (AnimationDrawable) animationIV.getDrawable();
        animationDrawable.stop();
      }

    });

    buttonC.setOnClickListener(new OnClickListener()
    {
      @Override
      public void onClick(View v) {
        // TODO Auto-generated method stub
        animationIV.setImageResource(R.drawable.animation2);
        animationDrawable = (AnimationDrawable) animationIV.getDrawable();
        animationDrawable.start();
      }
    });
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

01-28 13:49
查看更多