Android利用animation-list实现帧动画

本文实例为大家分享了利用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();
      }
    });
  }
}

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

(0)

相关推荐

  • 详解android 中animation-list 动画的应用

    来自同事_Smile的封装应用,记录学习一下,分享给大家,具体如下: 1.AnimImageViewLoader类的封装 /** * 适用于animation-list 动画 * Created by _Smile on 2016/6/13. */ public class AnimImageViewLoader extends ImageView { private AnimationDrawable frameAnimation; public AnimImageViewLoader(Con

  • Android编程之简单逐帧动画Frame的实现方法

    本文实例讲述了Android编程之简单逐帧动画Frame的实现方法.分享给大家供大家参考,具体如下: 1.逐帧动画 即是通过播放预先排序好的图片来实现动态的画面,感觉像是放电影. 2.实现步骤: ① 在工程里面导入要播放的图片.此简单例子中为start_icon1,2,3. ② 在工程res文件目录下新建一个anim文件夹,在里面新建一个start_animation.xml格式文件,此文件用来定义动画播放图片的顺序及每一张图片显示停留时间. 代码如下: <?xml version="1.

  • Android利用ConstraintLayout实现漂亮的动画详解

    前言 最近ConstrainLayout是Android中比较火的一个东西.ConstrainLayout可以使View层级扁平化,提升性能,支持任意的边框,其目的就是修复之前layout的一些短板.其实ConstrainLayout还有一个大多数人没有注意到的特性:可以利用Constrainlayout快速构建漂亮的动画效果. 方法 我这里假设已经你已经掌握了Constrainlayout基本知识(比如:app:layout_constraintLeft_toLeftOf等).Constrai

  • Android 动画(View动画,帧动画,属性动画)详细介绍

    0. 前言  Android动画是面试的时候经常被问到的话题.我们都知道Android动画分为三类:View动画.帧动画和属性动画. 先对这三种动画做一个概述: View动画是一种渐进式动画,通过图像的平移.缩放.旋转和透明度等各种渐进式变换完成动画效果. 帧动画是通过不停的切换图片实现动画效果. 属性动画是不停的改变对象的属性来实现动画效果.本文原创,转载请注明出处: http://blog.csdn.net/seu_calvin/article/details/52724655 1.  Vi

  • Android动画之逐帧动画(Frame Animation)基础学习

    前言 在Android中,动画Animation的实现有两种方式:Tween Animation(补间动画)和Frame Animation(帧动画).渐变动画是通过对场景里的对象不断做图像变换(平移.缩放.旋转等)产生动画效果.帧动画则是通过顺序播放事先准备好的图像来产生动画效果,和电影类似. 下面我们就来学习下Android中逐帧动画的基础知识. 原理 : 人眼的"视觉暂留" 方式 : 1.在java代码中 ( new AnimationDrawable().addFrame(ge

  • Android利用animation-list实现帧动画

    本文实例为大家分享了利用animation-list实现帧动画的具体代码,供大家参考,具体内容如下 将要顺序播放的图片放在资源目录下 再drawable目录下新建animation1文件和animation2文件  一个是按顺序显示动画,一个是倒序显示动画, 顺序显示动画文件:animation1.xml <?xml version="1.0" encoding="utf-8"?> <!-- 根标签为animation-list,其中oneshot

  • Android动画之逐帧动画(Frame Animation)实例详解

    本文实例分析了Android动画之逐帧动画.分享给大家供大家参考,具体如下: 在开始实例讲解之前,先引用官方文档中的一段话: Frame动画是一系列图片按照一定的顺序展示的过程,和放电影的机制很相似,我们称为逐帧动画.Frame动画可以被定义在XML文件中,也可以完全编码实现. 如果被定义在XML文件中,我们可以放置在/res下的anim或drawable目录中(/res/[anim | drawable]/filename.xml),文件名可以作为资源ID在代码中引用:如果由完全由编码实现,我

  • 解析Android中Animation动画的编写要点

    在API Demo的View->Animation下可以找到四个Animation的Demo,第一个3D Translate比较复杂,最后再讲,先讲第2个Interpolator.该Activity对应的是view包内的Animation3.java,和layout的animation_3.xml. 界面的布局不加解释了,就一个Spinner和一个TextView.不是本文内容. 主要解释下几个重点语句. 初始化Animation,从类的名字可以看出是一个变换View的位置的动画,参数起点横坐标

  • Android逐帧动画实现代码

    逐帧动画(Frame-by-frame Animations)顾名思义就是一帧接着一帧的播放图片,就像放电影一样.可以通过xml实现也可以通过java代码实现.逐帧动画适合实现比较简单的动画效果,如果要实现复杂动画不太建议使用逐帧动画. xml方式实现: step 1 : 在res/drawable目录下一个文件sample_animlist.xml: <?xml version="1.0" encoding="utf-8"?> <animatio

  • android 帧动画,补间动画,属性动画的简单总结

    帧动画--FrameAnimation 将一系列图片有序播放,形成动画的效果.其本质是一个Drawable,是一系列图片的集合,本身可以当做一个图片一样使用 在Drawable文件夹下,创建animation-list为根节点的资源文件 <animation-list android:oneshot="false"> <item android:drawable="@drawable/img1" android:duration="100

  • Android 使用帧动画内存溢出解决方案

    Android 使用帧动画内存溢出解决方案 最近在项目遇到的动画效果不好实现,就让UI切成图,采用帧动画实现效果,但是在使用animation-list时,图片也就11张,每张图片大概560k左右,结果内存溢出,崩溃 了,自己用了三张都崩溃:拿代码说: 1.anin_searh.xml <?xml version="1.0" encoding="utf-8"?> <animation-list xmlns:android="http://

随机推荐