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全部一次性的繪製到我門的動畫窗口