时间:2021-05-20
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(); } }}声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例为大家分享了Android实现画板的具体代码,采用的技术是双缓冲技术,供大家参考,具体内容如下1.双缓冲技术的概念所谓的双缓冲技术其实很简单,当程序需要
什么是双缓冲技术?双缓冲技术就是当用户操作界面完成后,会有一个缓冲区保存用户操作的结果。为什么要使用双缓冲技术?拿Android游戏开发来说,界面贞每次都是全部
本文实例讲述了C#手工双缓冲技术。分享给大家供大家参考。具体如下:usingSystem;usingSystem.Collections.Generic;usi
本文实例讲述了C#默认双缓冲技术。分享给大家供大家参考。具体如下:usingSystem;usingSystem.Collections.Generic;usi
JSP中out对象的实例详解一什么是缓冲区缓冲区:Buffer,所谓缓冲区就是内存的一块区域用来保存临时数据。二out对象out对象是JspWrite类的实例,