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 AnimationDrawableframeAnimation= null;ContextmContext= null;/* 定义一个Drawable对象 */DrawablemBitAnimation= 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());mBitAnimation = getResources().getDrawable(id);/* 为动画添加一帧 *///参数mBitAnimation是该帧的图片//参数500是该帧显示的时间,按毫秒计算frameAnimation.addFrame(mBitAnimation, 500);}/* 设置播放模式是否循环false表示循环而true表示不循环 */frameAnimation.setOneShot( false );  /* 设置本类将要显示这个动画 */this.setBackgroundDrawable(frameAnimation);}public 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;}}

 2、另一种通过xml文件定义

public class GameView extends View{/* 定义AnimationDrawable动画对象 */private AnimationDrawableframeAnimation= null;ContextmContext= null;public GameView(Context context){super(context);mContext = context;/* 定义一个ImageView用来显示动画 */ImageView img = new ImageView(mContext);/* 装载动画布局文件 */img.setBackgroundResource(R.anim.frameanimation);/* 构建动画 */frameAnimation = (AnimationDrawable) img.getBackground();/* 设置是否循环 */frameAnimation.setOneShot( false );  /* 设置该类显示的动画 */this.setBackgroundDrawable(frameAnimation);}public 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;}}

 

<?xml version="1.0" encoding="utf-8"?>                                                                  

 

更多相关文章

  1. Android中自定义Dialog常用的两种方式
  2. Android(安卓)自定义充电动画
  3. android AlertDialog自定义全屏显示
  4. Android属性动画 Property animation
  5. ProgressBar播放动画
  6. Android编译系统详解(三)
  7. Android(安卓)自定义标题栏Title Bar
  8. Android(安卓)自定义APP开机启动,并打开其它App
  9. Android(安卓)attrs文件(自定义)属性详解

随机推荐

  1. android ftp服务器实现
  2. [置顶] Android中显示AlertDialog对话框
  3. 分页控件1
  4. android ClassNotFoundException: Didn't
  5. 监听Bluetooth
  6. Android拷贝图片到指定文件路径
  7. Android——intent分享图片到微信好友、
  8. Android(安卓)MediaPlayer 简单综合应用
  9. 2011.07.11——— android 自定义toast
  10. android apk的安装