`
byandby
  • 浏览: 1696033 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

android Frame动画概述+示例

阅读更多
    大家平时见到的最多的可能就是Frame动画了,Android中当然也少不了它。它的使用更加简单,只需要创建一个AnimationDrawabledF对象来表示Frame动画,然后通过addFrame 方法把每一帧要显示的内容添加进去,最后通过start 方法就可以播放这个动画了,同时还可以通过 setOneShot方法设置是否重复播放。 下面就是一个用Frame动画模拟日全食的效果。先看看效果。









Activity01
package xiaohang.zhimeng;

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

public class Activity01 extends Activity {
	private GameView mGameView;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		// 设置无标题栏
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		// 设置为全屏模式
		getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
				WindowManager.LayoutParams.FLAG_FULLSCREEN);

		mGameView = new GameView(this);

		setContentView(mGameView);
	}

	public boolean onKeyUp(int keyCode, KeyEvent event) {
		if (mGameView == null) {
			return false;
		}
		mGameView.onKeyUp(keyCode, event);
		return true;
	}

	public boolean onKeyDown(int keyCode, KeyEvent event) {
		if (mGameView == null) {
			return false;
		}
		if (keyCode == KeyEvent.KEYCODE_BACK) {
			// 关闭Activity
			this.finish();
			return true;
		}
		return super.onKeyDown(keyCode, event);
	}
}


GameView
package xiaohang.zhimeng;

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;

public class GameView extends View{
	
	//定义AnimationDrawable动画
	private AnimationDrawable	frameAnimation = null;
	Context						mContext 	   = null;
	
	//定义一个Drawable对象
	Drawable					mBitAnimation  = null;
	
	public GameView(Context context) {
		super(context);
		
		mContext = context;
		
		//实例化AnimationDrawable对象
		frameAnimation = new AnimationDrawable();
		
		/*装载资源*/
		//这里用一个循环装载所有名字类似的资源
		//如"a1...........15.png"的图片
		for(int i = 1; i <= 15; i++){
			int id = getResources().getIdentifier("a" + i, "drawable", mContext.getPackageName());
			//此方法返回一个可绘制的对象与特定的资源ID相关联 
			mBitAnimation = getResources().getDrawable(id);
			/*为动画添加一帧*/
			//参数mBitAnimation是该帧的图片
			//参数500是该帧显示的时间,按毫秒计算
			frameAnimation.addFrame(mBitAnimation, 500);
		}
		/*上边用到了Resources的getIdentifier方法 方法返回一个资源的唯一标识符,如果没有这个资源就返回0
		 * 0不是有效的标识符,在说说这个方法几个参数的含义
		 * 第一个 就是我们的资源名称了。
		 * 第二个 就是我们要去哪里找我们的资源 我们的图片在drawable 下 所以为drawable
		 * 第三个 我们用了Context的getPackageName返回应用程序的包名
		 * */
		
		//设置播放模式是否循环播放,false表示循环,true表示不循环
		frameAnimation.setOneShot(false);
		
		//设置本类将要显示的这个动画
		this.setBackgroundDrawable( frameAnimation );
	}
	
	@Override
	protected void onDraw(Canvas canvas) {
		super.onDraw(canvas);
	}
	
	public boolean onKeyUp(int keyCode, KeyEvent event){
		switch (keyCode) {
		case KeyEvent.KEYCODE_DPAD_UP:
			//当按手机的上方向键时开始播放
			frameAnimation.start();
			break;
		}
		return true;
	}
}

  
   同样Frame 也可以用xml文件实现,大家去看 api吧。

   源码见附件

  • 大小: 13.7 KB
  • 大小: 15.1 KB
  • 大小: 13.3 KB
  • 大小: 22.8 KB
分享到:
评论
14 楼 kissoul 2011-05-17  
初学android,又学到了点儿东西.呵呵.全屏和无标题~
13 楼 lrh_java 2011-05-16  
可以学习下
12 楼 苹果超人 2011-05-10  
support!!!!
11 楼 h286271819 2011-03-26  
图文并茂!
带实例程序!
   注释详细!

就两字:
    给力!

希望还能看到更多的。。。。。。。。。。。。。
10 楼 wafj1984 2011-03-07  
这段代码对我还是很有帮助的
9 楼 eric_shi 2011-02-07  
相当的不错 让想起了美剧《HERO》
8 楼 pieerepeng 2011-02-05  
写的太罗嗦了,如果是做一个demo的话,根本不需要自定义view。
而且全屏的帧动画也不是这么干的。
7 楼 hantaozu 2011-01-30  
marrymyy 写道
想不到还能以这种方式看日全食,好

谢谢分享!回家写写!O(∩_∩)O~
6 楼 marrymyy 2011-01-26  
想不到还能以这种方式看日全食,好
5 楼 King_Bright 2011-01-18  
楼上的,按一下模拟器的向上键就ok了...
4 楼 ganky 2011-01-07  
我运行后黑屏……郁闷
3 楼 7454103 2010-12-08  
图文并茂!
带实例程序!
   注释详细!

就两字:
    给力!

希望还能看到更多的。。。。。。。。。。。。。
2 楼 byandby 2010-12-07  
pansonphy 写道
先顶楼主再下代码研究
辛苦了

谢谢捧场,呵呵~
1 楼 pansonphy 2010-12-06  
先顶楼主再下代码研究
辛苦了

相关推荐

    Android_动画效果

    本文档将详细介绍Android中的动画效果,并深入探讨两种主要的动画模式:渐变动画(Tweened Animation)与画面转换动画(Frame-by-Frame Animation),以及如何在XML文件中定义这些动画。 #### 二、Android动画类型 ...

    Android属性动画——自定义Drawable(Robots)

    1. **动画系统演化**:在Android早期版本中,动画主要依赖帧动画(Frame Animation)和补间动画(Tween Animation),它们只能改变View的位置和大小,无法实现更复杂的动画效果。属性动画系统自API 11引入,使得...

    Android属性动画的基本用法解析

    属性动画与传统的补间动画(Tween Animation)和帧动画(Frame Animation)不同,它不仅改变了View对象在屏幕上的显示状态,还能够在动画执行过程中动态改变对象的属性。接下来,我们将深入解析Android属性动画的...

    Android动画的简单使用

    通过本篇文档的学习,我们了解了Android中的两种基本动画类型——Tween动画和Frame动画,并通过实例代码展示了如何使用这两种动画来增强应用的视觉效果。对于初学者来说,掌握这些基本的动画技术是非常重要的,因为...

    Andorid帧动画Demo及知识树

    - Android动画系统概述 - `AnimationDrawable`类的属性和方法 - XML动画资源的结构 - 帧动画与其他动画类型(如补间动画、属性动画)的比较 - 实际应用示例(如加载指示器、游戏动画) - 性能优化策略 通过...

    Android动画效果编程基础

    #### 一、Android动画概述 Android平台提供了丰富的动画支持机制,使得开发者能够轻松地实现各种视觉效果,提升用户体验。在Android中,动画主要分为两大类:**逐帧动画(Frame-by-Frame Animation)**与**渐变动画...

    android 动画基础

    #### 一、Android动画概述 Android平台提供了丰富的动画支持,使得开发者可以轻松地为应用添加各种动态效果。动画不仅能够提升用户体验,还能让界面变得更加生动有趣。根据实现方式的不同,Android动画主要分为两类...

    Android 动画分析

    #### 一、Android动画概述 Android平台提供了丰富的动画支持,使得开发者可以轻松地创建各种复杂的视觉效果。动画是通过改变视图(View)的状态来实现的,这些状态包括透明度、尺寸、位置以及旋转角度等。在Android...

    Android动画介绍-属性动画(1)

    ### 一、属性动画概述 属性动画系统不同于之前的帧动画(Frame Animation)和补间动画(Tween Animation),它并不依赖于视图更新或者UI线程的绘制循环。属性动画可以改变任何对象的任意属性,并且在改变过程中能够...

    android 动画效果

    #### 一、动画概述与分类 Android系统提供了丰富的动画功能,这些功能可以帮助开发者创建出各种视觉效果,提升用户体验。根据不同的实现方式和效果,Android动画可以分为两大类: 1. **渐变动画(Tweened ...

    Android动画特效

    Android的动画系统主要包括两种类型:补间动画(Tween Animation)和帧动画(Frame Animation)。补间动画通过改变对象属性(如位置、大小、透明度等)来实现平滑过渡,而帧动画则类似于电影胶片,连续播放一组图片...

    安卓动画效果相关-Android实现百度阅读导入按钮效果.rar

    一、Android 动画概述 在Android系统中,动画分为两种类型:属性动画(Property Animation)和视图动画(View Animation)。视图动画主要是对视图的位置、大小、透明度等属性进行平滑变换,但并不改变视图的实际状态...

    [android.开发书籍].Android.3.0.Animations

    1. **基础概念**:首先介绍了动画的基本原理,包括帧动画(frame animation)和属性动画(property animation)的区别,以及如何选择合适的动画类型来满足特定需求。 2. **动画框架详解**:深入探讨了Android 3.0中提供...

    android悬浮窗口

    ### Android悬浮窗口与Frame动画实现详解 #### 一、悬浮窗口概述 悬浮窗口是指可以在其他应用程序之上显示的小型用户界面元素。在Android开发中,悬浮窗口通常用于提供额外的功能或者增强用户体验,例如通知、快捷...

    Android应用开发揭秘pdf高清版

    5.3.2 Frame动画 5.3.3 GIF动画播放 5.4 小结 第6章 Android数据存储 6.1 Android数据存储初探 6.2 数据存储之Shared Preferences 6.3 数据存储之Files 6.4 数据存储之Network 6.5 Android数据库编程 6.5.1 SQLite...

    Android Animation

    本书旨在帮助开发者掌握Android平台上各种动画效果的实现方法,通过丰富的示例代码和实践案例,让读者能够快速上手并深刻理解动画在提升用户体验中的重要作用。 #### 二、Android Animation概述 Android Animation...

    animation的介绍

    在Android 3.0之前,有两种主要的动画模式:Tween Animation(补间动画)和Frame Animation(帧动画)。自3.0版本开始,Android引入了Property Animation(属性动画)系统,提供了更强大的动画能力。对于旧版本的...

    android面试题

    Android支持多种类型的动画效果,主要包括Tween动画和Frame动画两大类。这两种动画类型分别适用于不同的应用场景,各有特点。 **详细解释:** - **Tween动画**:这种动画技术通过修改视图组件的位置、大小、旋转...

    极客学院安卓Android全套最新视频教程【17G全套视频+独家源码】

    - **动画效果**:包括Tween动画和Frame动画,可以让应用的交互更加流畅自然。 ### 五、实战项目开发 通过具体的实战项目,如开发一个天气应用、新闻客户端等,进一步巩固所学知识,并加深对Android开发的理解。...

Global site tag (gtag.js) - Google Analytics