程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> J2ME >> J2ME雙緩沖問題

J2ME雙緩沖問題

編輯:J2ME

雙緩沖主要是用來解決屏幕閃爍以及繪圖效率的問題,這裡介紹下MIDP裡面使用方法。

1、有一個函數可以判斷設備是否實現了雙緩沖:isDoubleBuffered(),如果返回true,表示設備自身實現了雙緩沖,理論上說我們就不用再自己設置了。不過為了安全第一,大家普遍認同的做法是,不管設備有沒有實現,我們都自己設置一個,反正多做沒有壞處。

2、自己實現雙緩沖代碼如下:

// initialize

       Image bufferImage = null;

       bufferImage=Image.createImage(scrW,scrH);

//in paint

public void paint(Graphics g){

//雙緩沖處理 

       Graphics old=null; //檢查圖片是否已經改變

       if(bufferImage!=null){ g=bufferImage.getGraphics(); }//bufferImageGraphics對象賦給g

      

g.setColor(0x0); //設置背景色黑色

g.fillRect(0,0,scrW,scrH);//清除當前畫面,准備繪制新畫面

g.setColor(0xFFFFFF); //設置顏色為白色

g.drawString("Test double buffer",10,50,0);

 

if(g!=old){ //要是圖片已經發生改變則將緩沖區圖片一次性畫到屏幕上去

       old.drawImage(bufferImage,0,0,Graphics.LEFT|Graphics.TOP);

}

}

3、注意:某些BT的機器可能自己設置雙緩沖會出問題,比如速度慢。

目前已發現的有SoftBank 3GC的少數機型,所以遇到特殊問題時,可以考慮去掉自己設置的雙緩沖看看,反正手機硬件已經支持了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved