Android应用开发揭秘的第20,21个程序5_15_tween,5_16_tweenxml修改版和高仿版的源码注释

//tween方式动画

//Activity01.java

 

package com.tween;

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

public class Activity01 extends Activity
{  
 private GameView mGameView;
 /** Called when the activity is first created. */
 @Override
 public void onCreate(Bundle savedInstanceState)
 {
  super.onCreate(savedInstanceState);
  
  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)
  {
   this.finish();
   return true;
  }
  return super.onKeyDown(keyCode, event);
 }
}

 

//GameView.java

package com.tween;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.drawable.BitmapDrawable;
import android.view.KeyEvent;
import android.view.View;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import android.view.animation.RotateAnimation;
import android.view.animation.ScaleAnimation;
import android.view.animation.TranslateAnimation;

public class GameView extends View
{
 /* 定义Alpha动画 */
 private Animation mAnimationAlpha  = null;
 
 /* 定义Scale动画 */
 private Animation mAnimationScale  = null;
 
 /* 定义Translate动画 */
 private Animation mAnimationTranslate = null;
 
 /* 定义Rotate动画 */
 private Animation mAnimationRotate = null;
 
 /* 定义Bitmap对象 */
 Bitmap    mBitQQ    = null;
 
 public GameView(Context context)
 {
  super(context);
  
  /* 装载资源 */
  mBitQQ = ((BitmapDrawable) getResources().getDrawable(R.drawable.qq)).getBitmap();
 }
 
 public void onDraw(Canvas canvas)
 {
  super.onDraw(canvas);
  
  /* 绘制图片 */
  canvas.drawBitmap(mBitQQ, 0, 0, null);
 }

 public boolean onKeyUp(int keyCode, KeyEvent event)
 {
  switch ( keyCode )
  {
  case KeyEvent.KEYCODE_DPAD_UP:
   /* 创建Alpha动画 */
   mAnimationAlpha = new AlphaAnimation(0.1f, 1.0f);
   /* 设置动画的时间 */
   mAnimationAlpha.setDuration(3000);
   /* 开始播放动画 */
   this.startAnimation(mAnimationAlpha);
   break;
  case KeyEvent.KEYCODE_DPAD_DOWN:
   /* 创建Scale动画 */
   mAnimationScale =new ScaleAnimation(0.0f, 1.0f, 0.0f, 1.0f,
            Animation.RELATIVE_TO_SELF, 0.5f,
            Animation.RELATIVE_TO_SELF, 0.5f);
   /* 设置动画的时间 */
   mAnimationScale.setDuration(500);
   /* 开始播放动画 */
   this.startAnimation(mAnimationScale);
   break;
  case KeyEvent.KEYCODE_DPAD_LEFT:
   /* 创建Translate动画 */
   mAnimationTranslate = new TranslateAnimation(10, 100,10, 100);
   /* 设置动画的时间 */
   mAnimationTranslate.setDuration(1000);
   /* 开始播放动画 */
   this.startAnimation(mAnimationTranslate);
   break;
  case KeyEvent.KEYCODE_DPAD_RIGHT:
   /* 创建Rotate动画 */
   mAnimationRotate=new RotateAnimation(0.0f, +360.0f,
             Animation.RELATIVE_TO_SELF,0.5f,
             Animation.RELATIVE_TO_SELF, 0.5f);
   /* 设置动画的时间 */
   mAnimationRotate.setDuration(1000);
   /* 开始播放动画 */
   this.startAnimation(mAnimationRotate);
   break;
  }
  return true;
 }
}

 

 

 

//GameView.java  xml

package com.tweenxml;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.drawable.BitmapDrawable;
import android.view.KeyEvent;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;

public class GameView extends View
{
 /* 定义Alpha动画 */
 private Animation mAnimationAlpha  = null;
 
 /* 定义Scale动画 */
 private Animation mAnimationScale  = null;
 
 /* 定义Translate动画 */
 private Animation mAnimationTranslate = null;
 
 /* 定义Rotate动画 */
 private Animation mAnimationRotate = null;
 
 /* 定义Bitmap对象 */
 Bitmap    mBitQQ    = null;
 
 Context mContext = null;
 public GameView(Context context)
 {
  super(context);
  
  mContext = context;
  
  /* 装载资源 */
  mBitQQ = ((BitmapDrawable) getResources().getDrawable(R.drawable.qq)).getBitmap();
 }
 
 public void onDraw(Canvas canvas)
 {
  super.onDraw(canvas);
  
  /* 绘制图片 */
  canvas.drawBitmap(mBitQQ, 0, 0, null);
 }
 
 public boolean onKeyUp(int keyCode, KeyEvent event)
 {
  switch ( keyCode )
  {
  case KeyEvent.KEYCODE_DPAD_UP:
   /* 装载动画布局 */
   mAnimationAlpha = AnimationUtils.loadAnimation(mContext,R.anim.alpha_animation);
   /* 开始播放动画 */
   this.startAnimation(mAnimationAlpha);
   break;
  case KeyEvent.KEYCODE_DPAD_DOWN:
   /* 装载动画布局 */
   mAnimationScale = AnimationUtils.loadAnimation(mContext,R.anim.scale_animation);
   /* 开始播放动画 */
   this.startAnimation(mAnimationScale);
   break;
  case KeyEvent.KEYCODE_DPAD_LEFT:
   /* 装载动画布局 */
   mAnimationTranslate = AnimationUtils.loadAnimation(mContext,R.anim.translate_animation);
   /* 开始播放动画 */
   this.startAnimation(mAnimationTranslate);
   break;
  case KeyEvent.KEYCODE_DPAD_RIGHT:
   /* 装载动画布局 */
   mAnimationRotate = AnimationUtils.loadAnimation(mContext,R.anim.rotate_animation);
   /* 开始播放动画 */
   this.startAnimation(mAnimationRotate);
   break;
  }
  return true;
 }
}

 

//Gftween 一样代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值