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

J2ME手機全屏幕問題

編輯:J2ME
J2ME游戲手機全屏幕(這裡指標准MIDP2.0使用setFullScreenMode(true);) 做過多種機型產品的朋友都知道,雖然標准MIDP2.0支持setFullScreenMode設置全屏幕,但是之後使用getWidth(), getHeight()來取得屏幕寬高的時候會發現,很多機型都沒有全屏,那叫一個郁悶啊,所以這裡我寫下這篇文章,幫助大家來解決這個問題。   1、改方法適用於國內基本所有機型S60、S40、MOTO等,以及SoftBank 3GC等。   2、不能全屏的主要解決辦法2個: a)        使用系統自帶sizeChanged()來取得屏幕寬和高; b)       在Canvas類的構造函數裡使用setFullScreenMode,然後保證構造函數結束後再調用getWidth( ), getHeight( ) 因為每種機器可能需要的方法不一樣,所以下面寫了個updateScreen函數,多次調用,保證各個方法都使用到,多重保險,通用性比較好。   3、代碼實現: class MyCanvas extends Canvas implements Runnable {        static int scrW=0;        static int scrH=0; public MyCanvas( ){ print(System.getProperty("microedition.platform")); setFullScreenMode(true); //延時是以防萬一,基本不需要,可以去掉;如果特殊情況不行,延時可以加到1000試試。 Thread.sleep (100); updateScreen(getWidth(), getHeight());  Thread mythread = new Thread(this); mythread.start(); } protected void sizeChanged(int w, int h) // setFullScreenMode後系統自己調用,實現就行 {        updateScreen(w, h); } public void updateScreen(int _w, int _h) {        scrW = _w; //因為updatescreen會被調用很多次,所以這裡有個判斷,如果高度沒有變化,就不重復處理        if(_h>scrH) scrH = _h;       else return; //如果使用了雙緩沖,應該在這裡設置 //      if(useDoubleBuffer) bufferImage=Image.createImage(scrW,scrH); } public void run( ) {         updateScreen( getWidth(), getHeight() ); } public void paint(Graphics g){ //TODO } }//end of class MyCanvas
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved