SKY外语计算机学习

标题: 安卓frame动画 [打印本页]

作者: rogan    时间: 2013-5-18 12:14
标题: 安卓frame动画
Activity01.java
  1. package com.yarin.android.Examples_05_17;

  2. import android.app.Activity;
  3. import android.os.Bundle;
  4. import android.view.KeyEvent;

  5. public class Activity01 extends Activity
  6. {
  7.         private GameView        mGameView;
  8.         /** Called when the activity is first created. */
  9.         @Override
  10.         public void onCreate(Bundle savedInstanceState)
  11.         {
  12.                 super.onCreate(savedInstanceState);
  13.                
  14.                 mGameView = new GameView(this);
  15.                
  16.                 setContentView(mGameView);
  17.         }
  18.        
  19.        
  20. }
复制代码
GameView .java


  1. package com.yarin.android.Examples_05_17;

  2. import android.content.Context;
  3. import android.graphics.Canvas;
  4. import android.graphics.drawable.AnimationDrawable;
  5. import android.graphics.drawable.Drawable;
  6. import android.view.KeyEvent;
  7. import android.view.MotionEvent;
  8. import android.view.View;

  9. public class GameView extends View {
  10.         /* 定义AnimationDrawable动画 */
  11.         private AnimationDrawable frameAnimation = null;
  12.         Context mContext = null;

  13.         /* 定义一个Drawable对象 */
  14.         Drawable mBitAnimation = null;

  15.         public GameView(Context context) {
  16.                 super(context);
  17.                 mContext = context;

  18.                 /* 实例化AnimationDrawable对象 */
  19.                 frameAnimation = new AnimationDrawable();

  20.                 /* 装载资源 */
  21.                 // 这里用一个循环了装载所有名字类似的资源
  22.                 // 如“a1.......15.png”的图片
  23.                 // 这个方法用处非常大
  24.                 for (int i = 1; i <= 15; i++)
  25.                 {
  26.                         int id = getResources().getIdentifier("a" + i, "drawable", mContext.getPackageName());
  27.                         mBitAnimation = getResources().getDrawable(id);
  28.                         /* 为动画添加一帧 */
  29.                         // 参数mBitAnimation是该帧的图片
  30.                         // 参数500是该帧显示的时间,按毫秒计算
  31.                         frameAnimation.addFrame(mBitAnimation, 500);
  32.                 }

  33.                 /* 设置播放模式是否循环false表示循环而true表示不循环 */
  34.                 frameAnimation.setOneShot(false);

  35.                 /* 设置本类将要显示这个动画 */
  36.                 this.setBackgroundDrawable(frameAnimation);
  37.         }

  38.         public void onDraw(Canvas canvas) {
  39.                 super.onDraw(canvas);

  40.         }

  41.         @Override
  42.         public boolean onTouchEvent(MotionEvent event) {
  43.                 frameAnimation.start();
  44.                 return super.onTouchEvent(event);
  45.         }

  46.         public boolean onKeyUp(int keyCode, KeyEvent event) {
  47.                 switch (keyCode) {
  48.                 case KeyEvent.KEYCODE_DPAD_UP:
  49.                         /* 开始播放动画 */
  50.                         frameAnimation.start();
  51.                         break;
  52.                 }
  53.                 return true;
  54.         }
  55. }
复制代码

作者: rogan    时间: 2013-5-18 12:53
标题: 图片资源
a1
a2
a3
a4
a5
a6
a7
a8
a9
a10
a11
a12
a13
a14
a15
a16
作者: rogan    时间: 2013-5-18 13:20
图片资源
金山快盘附件drawable.rar(192.25KB)





欢迎光临 SKY外语计算机学习 (http://join.skywj.com/) Powered by Discuz! X2.5