Chinaunix首页 | 论坛 | 博客
  • 博客访问: 9608
  • 博文数量: 15
  • 博客积分: 510
  • 博客等级: 中士
  • 技术积分: 170
  • 用 户 组: 普通用户
  • 注册时间: 2011-09-13 14:04
文章分类
文章存档

2011年(15)

我的朋友
最近访客

分类: IT业界

2011-11-10 20:02:50

Android2.1游戏开发——双缓冲技术的应用

 

这几天做一个游戏的开发,发现经常概率性的出现空指针异常,特别在开发板上,更容易出现错误,如图:

 

 

跟踪代码发现,在

.drawBitmap(key_bitmap, keyx, keyy, paint);

代码中会出现读取图片失败而导致抛出空指针异常。

 

经过反复调试,在使用双缓冲技术,对图片先经行处理后再绘制进去的话,崩溃现象明显减少。

 

双缓冲即在内存中创建一个与屏幕绘图区域一致的对象,先将图形绘制到内存中的这个对象上,再一次性将这个对象上的图形拷贝到屏幕上,这样能大大加快绘图的速度。双缓冲实现过程如下:

 

1.    在内存中创建与画布一致的缓冲区

2.    在缓冲区画图

3.    将缓冲区位图拷贝到当前画布上

4.    释放内存缓冲区

 

具体代码如下:

public void drawkey(){// 双缓冲

       Bitmap b = Bitmap.createBitmap(key_background.getWidth(), key_background.getHeight(), Config.ARGB_8888);

       Canvas c = new Canvas(b);

       c.drawBitmap(key_background, 0, 0, paint);

       key_bitmap = b;

    }

 

然后在draw方法中drawkey先将图片读入内存。

 

 

相关文章:
阅读(323) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~