栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 移动开发 > Android

android双缓冲技术实例详解

Android 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

android双缓冲技术实例详解

Android中的SurfaceView类就是双缓冲机制。因此,在进行Android游戏开发时应尽量使用SurfaceView而不要使用View,这样的话效率较高,并且SurfaceView的功能也更加完善。为了更容易的了解双缓冲技术,下面介绍用View实现双缓冲的方法。

在此需要说明一下,双缓冲的核心技术就是先通过setBitmap方法将要绘制的所有的图形绘制到一个Bitmap上,然后再来调用drawBitmap方法绘制出这个Bitmap,显示在屏幕上。其具体的实现代码如下:

先贴出View类代码:

package com.lbz.pack.test;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Bitmap.Config;
import android.graphics.drawable.BitmapDrawable;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
public class GameView extends View implements Runnable
{
 
 Bitmap mBitQQ = null;
 Paint  mPaint = null;
 
 Bitmap mSCBitmap = null;
 
 Canvas mCanvas = null;  
 public GameView(Context context)
 {
 super(context);
 
 mBitQQ = ((BitmapDrawable) getResources().getDrawable(R.drawable.qq)).getBitmap();
 
 mSCBitmap=Bitmap.createBitmap(320, 480, Config.ARGB_8888); 
 
 mCanvas = new Canvas(); 
 
 mCanvas.setBitmap(mSCBitmap); 
 mPaint = new Paint();
 
 mCanvas.drawBitmap(mBitQQ, 0, 0, mPaint);
 
 new Thread(this).start();
 }
 public void onDraw(Canvas canvas)
 {
 super.onDraw(canvas);
 
 canvas.drawBitmap(mSCBitmap, 0, 0, mPaint);
 }
 // 触笔事件
 public boolean onTouchEvent(MotionEvent event)
 {
 return true;
 }
 // 按键按下事件
 public boolean onKeyDown(int keyCode, KeyEvent event)
 {
 return true;
 }
 // 按键弹起事件
 public boolean onKeyUp(int keyCode, KeyEvent event)
 {
 return false;
 }
 public boolean onKeyMultiple(int keyCode, int repeatCount, KeyEvent event)
 {
 return true;
 }
 
 public void run()
 {
 while (!Thread.currentThread().isInterrupted())
 {
  try
  {
  Thread.sleep(100);
  }
  catch (InterruptedException e)
  {
  Thread.currentThread().interrupt();
  }
  //使用postInvalidate可以直接在线程中更新界面
  postInvalidate();
 }
 }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/164573.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号