`
Aina_hk55HK
  • 浏览: 387899 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

Android Animation Frame动画

阅读更多
1.java代码实现:

package com.Aina.Android;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.drawable.AnimationDrawable;
import android.graphics.drawable.Drawable;
import android.view.KeyEvent;
import android.view.View;
import android.widget.ImageView;

/**
 * com.Aina.Android Pro_AnimationFrame
 * 
 * @author Aina.huang E-mail: 674023920@qq.com
 * @version 创建时间:2010 Jun 18, 2010 1:56:18 PM 类说明
 */
public class GameView extends View {

	private AnimationDrawable mAnimationDrawable = null;
	private Context mContext = null;
	private Drawable mDrawable = null;

	public GameView(Context context) {
		super(context);
		this.mContext = context;
		
		mAnimationDrawable = new AnimationDrawable();
		for (int i = 1; i <= 15; i++) {
			int id = this.getResources().getIdentifier("a" + i, "drawable",
					mContext.getPackageName());
			mDrawable = this.getResources().getDrawable(id);
			mAnimationDrawable.addFrame(mDrawable, 100);// 为动画添加一帧.时间为毫秒
		}
		mAnimationDrawable.setOneShot(false);// 设置播放模式是否循环,false循环,true不循环.
		
//		ImageView iv = new ImageView(mContext);
//		iv.setBackgroundResource(R.anim.frame);
//		mAnimationDrawable = (AnimationDrawable) iv.getBackground();		
		this.setBackgroundDrawable(mAnimationDrawable);// 显示动画.
		
	}

	@Override
	protected void onDraw(Canvas canvas) {
		super.onDraw(canvas);
	}
	public boolean onKeyDown(int keyCode, KeyEvent event) {
		if(keyCode==KeyEvent.KEYCODE_1){
			mAnimationDrawable.start();//启动动画.
		}
		return super.onKeyDown(keyCode, event);
	}
}



package com.Aina.Android;

import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;

public class Test_Frame extends Activity {
    /** Called when the activity is first created. */
	private GameView gv = null;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        gv = new GameView(this);
        setContentView(gv);
    }
	@Override
	public boolean onKeyDown(int keyCode, KeyEvent event) {
		return gv.onKeyDown(keyCode, event);
	}
    
}


2.xml布局文件实现:

<?xml version="1.0" encoding="utf-8"?>
<animation-list
	xmlns:android="http://schemas.android.com/apk/res/android"
	android:oneshot="false">
	<item android:drawable="@drawable/a1" android:duration="100" />
	<item android:drawable="@drawable/a2" android:duration="100" />
	<item android:drawable="@drawable/a3" android:duration="100" />
	<item android:drawable="@drawable/a4" android:duration="100" />
	<item android:drawable="@drawable/a5" android:duration="100" />
	<item android:drawable="@drawable/a6" android:duration="100" />
	<item android:drawable="@drawable/a7" android:duration="100" />
	<item android:drawable="@drawable/a8" android:duration="100" />
	<item android:drawable="@drawable/a9" android:duration="100" />
	<item android:drawable="@drawable/a10" android:duration="100" />
	<item android:drawable="@drawable/a11" android:duration="100" />
	<item android:drawable="@drawable/a12" android:duration="100" />
	<item android:drawable="@drawable/a13" android:duration="100" />
	<item android:drawable="@drawable/a14" android:duration="100" />
	<item android:drawable="@drawable/a15" android:duration="100" />
</animation-list>


package com.Aina.Android;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.drawable.AnimationDrawable;
import android.graphics.drawable.Drawable;
import android.view.KeyEvent;
import android.view.View;
import android.widget.ImageView;

/**
 * com.Aina.Android Pro_AnimationFrame
 * 
 * @author Aina.huang E-mail: 674023920@qq.com
 * @version 创建时间:2010 Jun 18, 2010 1:56:18 PM 类说明
 */
public class GameView extends View {

	private AnimationDrawable mAnimationDrawable = null;
	private Context mContext = null;
	private Drawable mDrawable = null;

	public GameView(Context context) {
		super(context);
		this.mContext = context;
		/*
		mAnimationDrawable = new AnimationDrawable();
		for (int i = 1; i <= 15; i++) {
			int id = this.getResources().getIdentifier("a" + i, "drawable",
					mContext.getPackageName());
			mDrawable = this.getResources().getDrawable(id);
			mAnimationDrawable.addFrame(mDrawable, 100);// 为动画添加一帧.时间为毫秒
		}
		mAnimationDrawable.setOneShot(false);// 设置播放模式是否循环,false循环,true不循环.
		*/
		ImageView iv = new ImageView(mContext);
		iv.setBackgroundResource(R.anim.frame);
		mAnimationDrawable = (AnimationDrawable) iv.getBackground();		
		this.setBackgroundDrawable(mAnimationDrawable);// 显示动画.
		
	}

	@Override
	protected void onDraw(Canvas canvas) {
		super.onDraw(canvas);
	}
	public boolean onKeyDown(int keyCode, KeyEvent event) {
		if(keyCode==KeyEvent.KEYCODE_1){
			mAnimationDrawable.start();//启动动画.
		}
		return super.onKeyDown(keyCode, event);
	}
}

分享到:
评论

相关推荐

    Android Animation Frame逐帧动画2

    在Android中,我们可以使用`AnimationDrawable`类来实现Frame动画。 **实现方式:** 1. **XML方式**:通常在res/anim目录下创建一个xml文件,定义帧的顺序、持续时间和重复行为。例如,可以设置`&lt;animation-list&gt;`...

    Android Animation Frame逐帧动画

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

    Frame Animation 帧动画Demo

    在Android中,帧动画主要通过`&lt;animation-list&gt;`标签在XML资源文件中定义。这个`&lt;animation-list&gt;`是`&lt;selector&gt;`的一个子类,它允许我们指定一系列的`&lt;item&gt;`,每个`&lt;item&gt;`对应一帧图片。以下是一个基本的帧动画...

    android Animation动画实现loading效果

    Android Animation系统提供了多种动画类型,包括属性动画(Property Animation)、补间动画(Tween Animation)和帧动画(Frame Animation)。属性动画是Android 3.0(API Level 11)引入的,它允许对对象的任何属性...

    Android frame 帧动画demo

    在Android开发中,帧动画(Frame Animation)是一种常见的动态效果实现方式,它通过连续播放一系列静态图像来模拟连续动作,类似于传统的电影制作原理。在本示例中,“Android帧动画demo”将展示如何在Android应用中...

    帧动画 frameanimation

    - 在布局文件中设置一个ImageView,其背景资源引用帧动画的XML文件:`android:background="@anim/frame_animation"`。 4. **监听帧动画状态**: - 可以通过实现`Animation.AnimationListener`接口来监听动画的...

    Android frame by frame animation动画显示

    在Android开发中,帧动画(Frame-by-Frame Animation)是一种常用的技术,用于创建连续的图像序列,模拟视频或gif动图的效果。这种动画通常适用于简单的移动、旋转或渐变效果,比如按钮按下反馈、加载指示器等。接...

    Android Frame动画

    在Android开发中,帧动画(Frame Animation)是一种常见的动态效果实现方式,尤其在用户界面设计中,能够增加应用的互动性和吸引力。帧动画是通过连续播放一系列静态图像来创建动态效果,类似于传统的电影制作原理。...

    Android Animation动画资源文件

    Android Animation主要分为两大类:补间动画(Tween Animation)和帧动画(Frame Animation)。本资源文件主要关注补间动画,这是一种通过改变对象属性(如位置、大小、透明度等)在一段时间内平滑过渡的动画效果。 补...

    Android---Frame动画

    在Android开发中,帧动画(Frame Animation)是一种常见的动画效果,它通过连续播放一系列静态图像来模拟动态效果。本文将深入探讨如何在Android项目中应用帧动画,包括使用`AnimationDrawable`和`ImageView`实现这...

    Android Animation Demo

    这篇详细讲解将围绕标题和描述中的知识点展开,包括Tween Animation(补间动画)和Frame Animation(帧动画),帮助开发者理解和实践Android动画。 首先,我们来探讨 Tween Animation。Tween Animation是Android中...

    Android逐帧(Frame)动画

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

    Android 动画 Animation Demo

    3. **帧动画(Frame Animation)**:虽然帧动画不是属性动画的一部分,但它是Android动画体系中的一个关键元素。帧动画通过连续播放一系列图像来创建动画效果,常用于简单的2D游戏或加载指示器。`AnimationDrawable`是...

    frameAnimation动画效果

    帧动画(Frame Animation)是Android系统提供的一种基本的动画机制,它通过连续播放一系列静态图像来创造出动态的效果,类似于我们小时候看的翻页动画书。在手机软件开发中,帧动画常用于创建简单的过渡效果、加载...

    Android 游戏开发之使用AnimationDrable实现Frame动画

    通过阅读“Android 游戏开发之使用AnimationDrable实现Frame动画”相关资料,你可以深入理解`AnimationDrawable`的工作原理,并学习如何将其应用到实际项目中。而`Drawableframe`可能包含了具体的帧动画图片资源,...

    android动画之frame

    帧动画(Frame Animation)是Android提供的一种简单而直观的动画实现方式,适用于实现一系列静态图片按顺序播放的效果,类似于传统的动画胶片。本篇将深入探讨Android帧动画的概念、原理以及如何通过实例进行创建。 ...

    Android代码-Android-Animation-Set

    Drawable Animation / 帧动画 / Frame 动画 English explanation can go to read this article Ⅲ. Property Animation / 属性动画 English explanation can go to read this article Ⅳ. Ripple Effect / Touch ...

    Android的动画Animation详解

    Android动画主要分为两大类:Tween动画(渐变动画)和Frame-by-frame动画(逐帧动画)。这两种动画形式能够满足开发者对于基本动画效果的需求。 #### 二、XML中的动画定义 Android动画可以通过XML文件定义,并在...

    Android-一个App的Logo的动画效果实现

    Android支持多种动画类型,包括属性动画(Property Animation)、帧动画(Frame Animation)和视图动画(View Animation)。Logo动画通常适合使用属性动画,因为它提供了更丰富的控制和灵活性。在"QccLogo-...

Global site tag (gtag.js) - Google Analytics