j2me 闪屏问题及双缓冲的实现

 

 

使用离屏缓冲区【双缓冲】。

MIDP2.0已经自带了离屏缓冲功能, 如果是1.0的话,

 

// 先定义一个离屏画笔 Graphics offg; // 离屏画笔 // 在创建一个离屏画布 Image img=Image.createImage(this.getWidth(), this.getHeight()); // 然后 offg.getGraphics(); //获取画笔 

 

这样就可以在任何一个方法内绘制图像了,并且不需要定义Graphcs方法了。

离屏缓充区的原理就是 当屏幕还未加载完一张图片的时候,先在另外一个画布上绘制完图片,然后在以图片的形式将整个画布绘制出来。

这样可以解决闪屏的问题。

 

 

在学习j2me的过程中,可能很多学员对屏幕缓冲理解方面有很多的误解,其实,屏幕缓冲简单的可以说成:就是使用自己创建的屏幕画笔在创建画笔的屏幕上作画,然后再将画出的屏幕做为Image的对象画到改屏幕上:

package com.redarmy.tes; import javax.microedition.lcdui.Canvas; import javax.microedition.lcdui.Graphics; import javax.microedition.lcdui.Image; public class ExCanvas extends Canvas{ public Image offScreen;//离屏缓冲区 public Graphics offg; //离屏画笔 public ExCanvas() { //绘制和屏幕一样大小的缓冲区 offScreen = Image.createImage(this.getWidth(), this.getHeight ()); //得到离屏缓冲区的画笔 offg = offScreen.getGraphics(); } protected void paint(Graphics arg0) { //绘制离屏缓冲区 arg0.drawImage(offScreen, 0, 0, Graphics.LEFT|Graphics.TOP); } }  

 

源文链接:http://redarmychen.iteye.com/blog/552644

 

 

你可能感兴趣的:(image,Class,import,j2me)