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中,我们可以使用`AnimationDrawable`类来实现Frame动画。 **实现方式:** 1. **XML方式**:通常在res/anim目录下创建一个xml文件,定义帧的顺序、持续时间和重复行为。例如,可以设置`<animation-list>`...
Frame动画是Android中用于创建序列动画的一种方法,类似于传统的电影制作,通过连续播放多帧静态图片来形成连续的视觉效果。与Tween动画不同,Tween动画是通过对对象属性(如平移、旋转、缩放等)进行平滑过渡来实现...
在Android中,帧动画主要通过`<animation-list>`标签在XML资源文件中定义。这个`<animation-list>`是`<selector>`的一个子类,它允许我们指定一系列的`<item>`,每个`<item>`对应一帧图片。以下是一个基本的帧动画...
Android Animation系统提供了多种动画类型,包括属性动画(Property Animation)、补间动画(Tween Animation)和帧动画(Frame Animation)。属性动画是Android 3.0(API Level 11)引入的,它允许对对象的任何属性...
在Android开发中,帧动画(Frame Animation)是一种常见的动态效果实现方式,它通过连续播放一系列静态图像来模拟连续动作,类似于传统的电影制作原理。在本示例中,“Android帧动画demo”将展示如何在Android应用中...
- 在布局文件中设置一个ImageView,其背景资源引用帧动画的XML文件:`android:background="@anim/frame_animation"`。 4. **监听帧动画状态**: - 可以通过实现`Animation.AnimationListener`接口来监听动画的...
在Android开发中,帧动画(Frame-by-Frame Animation)是一种常用的技术,用于创建连续的图像序列,模拟视频或gif动图的效果。这种动画通常适用于简单的移动、旋转或渐变效果,比如按钮按下反馈、加载指示器等。接...
在Android开发中,帧动画(Frame Animation)是一种常见的动态效果实现方式,尤其在用户界面设计中,能够增加应用的互动性和吸引力。帧动画是通过连续播放一系列静态图像来创建动态效果,类似于传统的电影制作原理。...
Android Animation主要分为两大类:补间动画(Tween Animation)和帧动画(Frame Animation)。本资源文件主要关注补间动画,这是一种通过改变对象属性(如位置、大小、透明度等)在一段时间内平滑过渡的动画效果。 补...
在Android开发中,帧动画(Frame Animation)是一种常见的动画效果,它通过连续播放一系列静态图像来模拟动态效果。本文将深入探讨如何在Android项目中应用帧动画,包括使用`AnimationDrawable`和`ImageView`实现这...
这篇详细讲解将围绕标题和描述中的知识点展开,包括Tween Animation(补间动画)和Frame Animation(帧动画),帮助开发者理解和实践Android动画。 首先,我们来探讨 Tween Animation。Tween Animation是Android中...
其中,"逐帧动画"(Frame Animation)是一种简单且常用的技术,适用于创建一系列连续的静态图像来模拟动态效果。本篇文章将深入探讨Android逐帧动画的概念、实现方式以及相关的实践技巧。 逐帧动画的工作原理类似于...
3. **帧动画(Frame Animation)**:虽然帧动画不是属性动画的一部分,但它是Android动画体系中的一个关键元素。帧动画通过连续播放一系列图像来创建动画效果,常用于简单的2D游戏或加载指示器。`AnimationDrawable`是...
帧动画(Frame Animation)是Android系统提供的一种基本的动画机制,它通过连续播放一系列静态图像来创造出动态的效果,类似于我们小时候看的翻页动画书。在手机软件开发中,帧动画常用于创建简单的过渡效果、加载...
通过阅读“Android 游戏开发之使用AnimationDrable实现Frame动画”相关资料,你可以深入理解`AnimationDrawable`的工作原理,并学习如何将其应用到实际项目中。而`Drawableframe`可能包含了具体的帧动画图片资源,...
帧动画(Frame Animation)是Android提供的一种简单而直观的动画实现方式,适用于实现一系列静态图片按顺序播放的效果,类似于传统的动画胶片。本篇将深入探讨Android帧动画的概念、原理以及如何通过实例进行创建。 ...
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动画主要分为两大类:Tween动画(渐变动画)和Frame-by-frame动画(逐帧动画)。这两种动画形式能够满足开发者对于基本动画效果的需求。 #### 二、XML中的动画定义 Android动画可以通过XML文件定义,并在...
Android支持多种动画类型,包括属性动画(Property Animation)、帧动画(Frame Animation)和视图动画(View Animation)。Logo动画通常适合使用属性动画,因为它提供了更丰富的控制和灵活性。在"QccLogo-...