`
AnhuiOSS技术分享
  • 浏览: 35114 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Android 动画之帧动画

阅读更多

    帧动画是根据视觉停留原理而实现的动画效果,本例从AnimationDrawable角度来实现一个简单动画效果,主页面如图:

 

    示例用含有数字1、2、3、4的图片代表不同的帧,然后通过AnimationDrawable来控制帧动画。下面说明一下实现过程:

    1、建立动画文件:

    在res/anim目录中建立一个xml文件,名称任取,格式如下:

<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
		android:oneshot="false" >
	<item android:drawable="@drawable/n1" android:duration="50" />
	<item android:drawable="@drawable/n2" android:duration="50" />
	<item android:drawable="@drawable/n3" android:duration="50" />
	<item android:drawable="@drawable/n4" android:duration="50" />
</animation-list>

 说明:

  • android:oneshot:帧动画运行的次数,true表示运行一次,false表示循环播放;
  • item:定义每帧的属性;
  • android:drawable:指定该帧对应的图像资源;
  • android:duration:该帧图像停留的时间。

    2、装载并控制帧动画:

import android.app.Activity;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;

public class FrameActivity extends Activity implements OnClickListener {
	
	private ImageView imageView;
	private AnimationDrawable animationDrawable;
	private Button startButton;
	private Button startOneShotButton;
	private Button stopButton;
	private Button pauseOrContinueButton;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		startButton = (Button) findViewById(R.id.button1);
		startButton.setOnClickListener(this);

		startOneShotButton = (Button) findViewById(R.id.button2);
		startOneShotButton.setOnClickListener(this);

		stopButton = (Button) findViewById(R.id.button3);
		stopButton.setOnClickListener(this);

		pauseOrContinueButton = (Button) findViewById(R.id.button4);
		pauseOrContinueButton.setOnClickListener(this);

		imageView = (ImageView) findViewById(R.id.imageView1);
		imageView.setBackgroundResource(R.anim.frame_animation);
		animationDrawable = (AnimationDrawable) imageView.getBackground();

	}

	private void start(boolean isOneShot) {
		if (animationDrawable != null) {
			if (animationDrawable.isRunning()) {
				animationDrawable.stop();
			}
			animationDrawable.setOneShot(isOneShot);
			animationDrawable.start();
		}
	}

	@Override
	public void onClick(View view) {

		if (view == startButton) {
			start(false);
			return;
		}

		if (view == startOneShotButton) {
			start(true);
			return;
		}

		if (view == stopButton) {
			animationDrawable.stop();
			return;
		}

		if (view == pauseOrContinueButton) {
			if (animationDrawable.isRunning()) {
				animationDrawable.stop();
			} else {
				animationDrawable.start();
			}
			return;
		}

	}

}

  说明:

  • start():开始播放动画;
  • stop():停止播放动画;
  • isRunning():判断动画是否正在播放;
  • setOneShot():设置是否循环播放。

    AnimationDrawable还有一些其它的控制动画的方法,具体参看Google开发者网站相关资料。:)

 

    3、多说一句:

    希望对你有所帮助,如需代码,请点击附件 !=^_^=

 

分享到:
评论

相关推荐

    android动画之帧动画(drawable animation)和补间动画(view animation)

    在Android中,我们可以使用`&lt;animation-list&gt;`标签来定义帧动画,这个标签位于XML资源文件中。每个帧由`&lt;item&gt;`标签表示,每个`&lt;item&gt;`都有一个`drawable`属性,用于指定显示的图片,并有一个`duration`属性,用于...

    Android 属性动画和帧动画例子

    Android平台提供了两种主要的动画类型:属性动画(Property Animation)和帧动画(Frame Animation),它们在构建动态用户界面和交互时发挥着重要作用。本篇将深入探讨这两种动画机制,并通过《疯狂安卓讲义》中的...

    Android 序列帧动画,开始,结束监听的解决Demo.zip

    在Android开发中,序列帧动画(Frame Animation)是一种常见的动态效果实现方式,它通过连续播放一系列静态图片来创建动画效果,类似于电影胶片的工作原理。本Demo主要关注如何在Android中实现序列帧动画,并添加...

    Android 帧动画优化实现可减少内存使用

    在Android开发中,帧动画(Frame Animation)是一种常见的动态效果实现方式,它通过连续播放一系列静态图片来模拟动画效果。然而,如果不进行优化,帧动画可能会导致内存消耗过大,影响应用性能,甚至引发ANR...

    Android动画合集之帧动画

    帧动画是Android动画体系的基础部分,对于实现各种动态效果非常实用。在实际开发中,可以结合其他类型的动画(如补间动画、属性动画)来实现更复杂、更流畅的交互体验。通过不断实践和探索,开发者可以更好地掌握...

    Android帧动画和补间动画总结

    在Android中,我们可以使用`AnimationDrawable`类来实现帧动画。首先,我们需要在资源目录下创建一个XML文件(如`frame_animation.xml`),定义每一帧图片及其持续时间: ```xml &lt;animation-list xmlns:android=...

    android 逐帧动画实现 源码

    在Android开发中,逐帧动画是一种常见的动画效果,它通过连续播放一系列静态图像来创造出动态效果,类似于传统的电影制作方式。本源码着重探讨如何在Android应用中实现逐帧动画。 首先,我们要了解Android中的两种...

    android逐帧动画

    在Android平台上,逐帧动画是一种常见且直观的动画实现方式,尤其适用于创建简单的连续图像序列,比如行走、跳跃等动作效果。在这个特定的案例中,我们看到标题为“android逐帧动画”,描述提到有三张图片进行切换,...

    Android 动画之帧动画用法详解

    帧动画概念在Android开发中,帧动画是一种基本的动画形式,它通过连续播放一系列静态图像(帧)来创建动态效果,类似于传统的电影制作原理。每一帧都是一个独立的图片资源,当这些帧按照一定的速度顺序播放时,就会...

    android 经典帧动画源码

    通过学习和实践这个“android经典帧动画源码”,开发者不仅可以掌握帧动画的实现,还能了解Android动画系统的底层工作原理,为后续的高级动画开发打下基础。同时,对于`Myunlity3D`文件,可能包含与Unity3D游戏引擎...

    Android 序列帧动画,开始,结束监听的解决-IT计算机-毕业设计.zip

    在Android应用开发中,序列帧动画(Frame Animation)是一种常用的技术,用于实现连续播放一系列静态图像来创造出动态效果。在很多场景下,如游戏、动画短片或UI过渡效果,序列帧动画都能发挥重要作用。本项目是针对...

    Android-ImageFrame高效省内存播放序列帧动画控件

    在Android开发中,序列帧动画是一种常见的动画表现形式,它通过连续播放一系列静态图像来创造出动态效果,常用于游戏、加载动画或者简单的交互反馈。在处理序列帧动画时,内存管理和性能优化至关重要,以避免应用...

    android 逐帧动画

    "逐帧动画"是Android动画系统中的一个基础概念,尤其适用于创建连续动态效果,如人物行走、物体旋转等。本教程将深入探讨逐帧动画的工作原理、实现方式以及如何在实际项目中运用。 逐帧动画是一种通过连续播放一...

    Android Gif与帧动画的加载方式

    Android提供了多种加载和播放GIF与帧动画的方式,开发者可以根据项目需求选择合适的方法。无论是原生支持还是借助第三方库,都需要关注性能优化,确保用户体验的同时不浪费系统资源。理解这些加载方式和使用技巧,将...

    Android 逐帧动画源码.zip

    在Android应用开发中,逐帧动画是一种常见的动画形式,它通过连续播放一系列静态图像...这个源码项目是学习Android动画系统的好起点,可以帮助开发者熟练掌握Android平台上的动画实现,提升应用的视觉吸引力和交互性。

    Android 游戏动画 帧动画

    帧动画,帧动画顾名思义,一帧一帧播放的动画就是帧动画。 帧动画和我们小时候看的动画片的原理是一样的,在相同区域快速切换图片给人们呈现一种视觉的假象感觉像是在播放动画,其实不过是N张图片在一帧一帧的切换...

    Android 动画机制 补间、属性、帧动画、源码分析

    Android 动画机制 补间、属性、帧动画、源码分析 Android系统提供了很多丰富的API去实现UI的2D与3D动画,最主要的划分可以分为如下几类: * View Animation:最早提供的一种动画,用来这只view。 * Drawable ...

    Android解决大量帧动画内存泄漏问题

    帧动画太多造成内存泄漏问题,内含所需的JAR包:org.apache.commons.io.IOUtils,将Inputstream转为byte字节数组,减少内存泄漏 和关键代码,仅供参考,如有建议请在下方留言或添加咨询~~~

    android 帧动画

    在Android平台上,帧动画是一种常见的视觉效果,常用于创建简单的动画序列,比如旋转图标、滑动效果等。本文将深入探讨如何在Android中实现帧动画,以满足标题和描述中的需求。 帧动画是通过连续播放一系列静态图像...

Global site tag (gtag.js) - Google Analytics