`
wangleyiang
  • 浏览: 218684 次
社区版块
存档分类
最新评论

Android 帧(frame)动画

阅读更多

    帧动画是根据视觉停留原理而实现的动画效果,本例从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、多说一句:

    希望对你有所帮助,如需代码,请点击此处:=^_^=

 

  • 大小: 9.5 KB
分享到:
评论

相关推荐

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

    本篇文章将深入探讨如何优化Android帧动画以降低内存使用。 首先,理解帧动画的工作原理至关重要。帧动画是通过`AnimationDrawable`类实现的,它是一个可绘制对象,可以包含一系列`&lt;frame&gt;`元素,每个元素代表一帧...

    Android frame 帧动画demo

    在本示例中,“Android帧动画demo”将展示如何在Android应用中创建并播放帧动画。 帧动画的核心组件是`AnimationDrawable`,它是一个可绘制对象,可以作为视图背景使用,并按照预设顺序播放一组帧。首先,我们需要...

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

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

    Android逐帧(Frame)动画

    其中,"逐帧动画"(Frame Animation)是一种简单且常用的技术,适用于创建一系列连续的静态图像来模拟动态效果。本篇文章将深入探讨Android逐帧动画的概念、实现方式以及相关的实践技巧。 逐帧动画的工作原理类似于...

    Android Animation Frame逐帧动画2

    在Android开发中,动画是提升用户...总之,Android的Frame动画是创建简单动画的有效手段,适用于像翻页、旋转等需要连续显示多帧图像的场景。通过理解其原理和实现方式,开发者可以灵活地创建各种富有创意的动画效果。

    Android Animation Frame逐帧动画

    Frame动画是Android中用于创建序列动画的一种方法,类似于传统的电影制作,通过连续播放多帧静态图片来形成连续的视觉效果。与Tween动画不同,Tween动画是通过对对象属性(如平移、旋转、缩放等)进行平滑过渡来实现...

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

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

    Android帧动画和补间动画总结

    本文将深入探讨两种主要的动画类型:帧动画(Frame Animation)和补间动画(Tween Animation),并提供相应的代码实现示例。 帧动画是通过连续播放一系列静态图像来创建动态效果的一种方式。在Android中,我们可以...

    android 逐帧动画实现 源码

    首先,我们要了解Android中的两种主要动画机制:补间动画(Tween Animation)和帧动画(Frame Animation)。补间动画是通过改变对象的属性(如位置、大小、透明度等)在一段时间内平滑过渡,而帧动画则是按照预定义...

    android 经典帧动画源码

    同时,对于`Myunlity3D`文件,可能包含与Unity3D游戏引擎相关的资源,虽然与Android帧动画直接关联性不大,但可以结合使用,比如在Unity中制作3D动画,然后导出到Android进行集成,实现跨平台的交互体验。

    android逐帧动画

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

    android 逐帧动画

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

    Android Frame动画

    总之,Android帧动画是一种简单而实用的动画实现方式,尤其适用于简单的动态效果。通过合理的帧数控制、动画时机选择以及与其他动画类型的结合,开发者可以创建出丰富多样的交互体验。在实际开发中,结合不同类型的...

    Android 逐帧动画源码.zip

    在Android中,逐帧动画主要通过`Animation`类的子类`FrameAnimation`来实现。`FrameAnimation`会按照指定的时间间隔依次显示一系列的图像资源,形成连续的动画效果。以下将详细介绍如何使用Java语言在Android中创建...

    Android 之 Frame逐帧动画

    总结,Android中的Frame动画是通过`AnimationDrawable`类实现的,通过XML描述帧序列和播放时间,结合Java代码控制动画的播放。虽然简单,但在某些场景下可能无法满足高性能的需求,此时可以转向其他更高效的动画实现...

    android 帧动画

    总结来说,Android帧动画是一种利用一系列静态图片创建动态效果的方法。通过定义XML资源,设置View背景,以及在代码中启动和控制动画,开发者可以轻松实现各种简单的动画效果。然而,对于复杂动画或性能要求较高的...

    Android 帧动画实现自定义loading加载框

    总之,Android帧动画提供了一种简单直观的方式来创建自定义加载框,通过合理设计和组合,开发者可以轻松地为应用程序增添个性化和趣味性。在`LoadingDemo`项目中,你可以找到完整的示例代码,进一步理解和实践这个...

    Android 属性动画和帧动画例子

    Android帧动画 帧动画是Android早期版本中的动画机制,适用于简单的序列动画,如播放一系列图片来形成连续的动作。它基于`AnimationDrawable`类,将多张图片打包成一个动画资源。 - 创建一个XML文件(通常位于res...

Global site tag (gtag.js) - Google Analytics