package com.Aina.Android;import android.content.Context;import android.graphics.Bitmap;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Rect;import android.graphics.drawable.BitmapDrawable;import android.view.KeyEvent;import android.view.View;public class GameView extends View implements Runnable {private Paint mPaint;private Bitmap mBitqq;private Bitmap mBitDestTop;private int movex = 0;private int DisplayWidth;//屏幕宽带private int DisplayHeight;//屏幕高度public GameView(Context context,int DisplayWidth,int DisplayHeight) {super(context);this.DisplayWidth = DisplayWidth;this.DisplayHeight = DisplayHeight;mPaint = new Paint();mBitqq = ((BitmapDrawable) this.getResources().getDrawable(R.drawable.qq)).getBitmap();mBitDestTop = ((BitmapDrawable) this.getResources().getDrawable(R.drawable.desktop)).getBitmap();new Thread(this).start();}@Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);canvas.drawColor(Color.BLACK);// 清屏canvas.drawBitmap(mBitqq, 0, 0, mPaint);this.DrawImage(canvas, mBitDestTop, movex, mBitqq.getHeight() + 2,mBitDestTop.getWidth(), mBitDestTop.getHeight(), 0,0);}@Overridepublic void run() {while (!Thread.interrupted()) {try {Thread.sleep(100);} catch (Exception ex) {ex.printStackTrace();Thread.currentThread().interrupt();}this.postInvalidate();}}/** * x:屏幕上的x坐标 y:屏幕上的y坐标 w:要绘制的图片的宽度 h:要绘制的图片的高度 bx:图片上的x坐标 by:图片上的y坐标 *  * @param canvas * @param mBitmap * @param x * @param y * @param w * @param h * @param bx * @param by */public void DrawImage(Canvas canvas, Bitmap mBitmap, int x, int y, int w,int h, int bx, int by) {Rect src = new Rect();// 图片裁剪区域Rect dst = new Rect();// 屏幕裁剪区域src.left = bx;src.top = by;src.right = bx + w;src.bottom = by + h;dst.left = x;dst.top = y;dst.right = x + w;dst.bottom = y + h;canvas.drawBitmap(mBitmap, src, dst, mPaint);src = null;dst = null;}public boolean onKeyDown(int keyCode, KeyEvent event) {if (keyCode == KeyEvent.KEYCODE_DPAD_LEFT) {if (this.movex > 0) {this.movex -= 5;}} else if (keyCode == KeyEvent.KEYCODE_DPAD_RIGHT) {if (this.movex + this.mBitDestTop.getWidth() < this.DisplayWidth) {this.movex += 5;}}return super.onKeyDown(keyCode, event);}}
package com.Aina.Android;
import android.app.Activity;import android.os.Bundle;import android.util.DisplayMetrics;import android.view.KeyEvent;public class Test_DrawBitmap extends Activity {    /** Called when the activity is first created. */private GameView gv = null;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        DisplayMetrics dm = new DisplayMetrics();        this.getWindowManager().getDefaultDisplay().getMetrics(dm);                gv = new GameView(this,dm.widthPixels,dm.heightPixels);        setContentView(gv);    }@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {return gv.onKeyDown(keyCode, event);}    }

更多相关文章

  1. android Gallery做图片滚动,每次滑动翻一页
  2. Android单击屏幕获得坐标,屏幕多点触摸测试器
  3. Android 加载图片文件 函数
  4. Android图片压缩及内存缓存
  5. 【Android】安卓开机禁止锁屏,禁止屏幕休眠

随机推荐

  1. android实现进程注入
  2. android 处理运行时改变 开发文档翻译
  3. Android开机动画过程
  4. Activity的四种启动模式和onNewIntent()
  5. RelativeLayout 属性
  6. 沉浸式状态栏StatusBar
  7. Android(安卓)Service 服务详细讲解
  8. Android的四种启动方式
  9. Handler机制情景分析
  10. Android应用程序与SurfaceFlinger服务之