Android2.1游戏开发——双缓冲技术的应用
这几天做一个游戏的开发,发现经常概率性的出现空指针异常,特别在开发板上,更容易出现错误
跟踪代码发现,在
canvas.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先将图片读入内存。
分享到:
相关推荐
由此引出消除闪烁的方法——双缓冲。双缓冲是计算机动画处理中的传统技术,在用其他语言编程时也可以实现。本文从实例出发,着重介绍了用双缓冲消除闪烁的原理以及双缓冲在Java中的两种常用实现方法(即在update...
安卓Android源码——VIEW双缓冲与SurfaceView比较.zip
Android源码——新浪微博图片缓冲技术.zip
安卓Android源码——新浪微博图片缓冲技术.zip
VxWorks下图形用户界面开发中双缓冲技术应用参考.pdf
安卓Android源码——新浪微博图片缓冲技术_hyg.zip
C# GDI双缓冲技术应用文档说明及源代码
《Android应用开发揭秘》全部实例源代码,配合《Android应用开发揭秘》使用 前言 第一部分 准备篇 第1章 Android开发简介 1.1 Android基本概念 1.1.1 Android简介 1.1.2 Android的系统构架 1.1.3 ...
第10章 Android应用开发 实例 10.1 情境模式 10.2 文件管理器 10.3 通讯录 10.4 音乐播放器 10.5 天气预报 10.6 个人地图 10.7 Widget日历 10.8 小结 第11 章Android游戏开发实例 11.1 手机游戏开发简介 11.2 游戏...
5.2.10 双缓冲技术 5.2.11 全屏显示 5.2.12 获得屏幕属性 5.3 动画实现 5.3.1 Tween动画 5.3.2 Frame动画 5.3.3 GIF动画播放 5.4 小结 第6章 Android数据存储 6.1 Android数据存储初探 6.2 ...
双缓冲技术.rar 包含代码+文档+各种资料 我自己整理的 双缓冲技术.rar 包含代码+文档+各种资料 我自己整理的 双缓冲技术.rar 包含代码+文档+各种资料 我自己整理的 双缓冲技术.rar 包含代码+文档+各种资料 我自己...
java Applet做动画时总是出现动画闪烁,用双缓冲技术可以解决,献给跟我一样的初学者。
Android应用源码开发Demo,主要用于毕业设计学习。
《Android应用开发揭秘》内容全面,不仅详细讲解了Android框架、Android组件、用户界面开发、游戏开发、数据存储、多媒体开发和网络开发等基础知识,而且还深入阐述了传感器、语音识别、桌面组件开发、Android游戏...
vc 双缓冲技术
Android应用源码之VIEW双缓冲与SurfaceView比较.zip项目安卓应用源码下载Android应用源码之VIEW双缓冲与SurfaceView比较.zip项目安卓应用源码下载 1.适合学生毕业设计研究参考 2.适合个人学习研究参考 3.适合公司...
C#WinForm利用GDI+的双缓冲技术来提高绘图效率.pdf
双缓冲在VC的画图编程中很重要,可以克服闪烁等现象,同时编程更容易. 双缓冲的关键点在于创建一个兼容性的设备描述表(CompatibleDC)及一个相对应Compatible兼容性的的CBitmap,不同的CompatibleDC如果指向同一个...