cldc2.0 中GameCanvas已经实现了双缓冲功能,而1.0并没有,在1.0下,可以用下列方面自己实现双缓冲
代码如下:
private Image image;
private Graphics bg;
public void update(Graphics g){
if(image == null){
image =createImage(getSize().width,getSize().height);
bg =image.getGraphics();
}
//
此处用bg进行各种绘制动作如bg.drawString, bg.drawLine...
//
g.drawImage(image,0,0,this);
}
该段代码的原理:
1.建立一个Image对象image,通过image=createrImage(int width,int height)来在内存中开辟一个长为width 宽为heithr空间.次空间的大小可以和你动画窗口的大小保持一致,也可以利用getwidth()和getheight()来获得动画窗口的大小.
2.建立一个Graphics 对象bg通过bg=image.getGraphics();去把要绘制的对象存放到分配好的内存空间中.
3.利用各种绘制操作,将其全部绘制到内存之中,最后调用我门的paint(Graphics g)方法中的g.drawImage(image,0,0,this)将image全部一次性的绘制到我门的动画窗口