歡迎您光臨本站 註冊首頁

J2ME編程 橫豎屏切換知識總結

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0

  隨著手機的功能越來越豐富,支持橫豎屏切換的手機越來越多,在手機軟體開發中也必須要處理這個功能了.下面對於使用J2ME技術進行編程時對於橫豎屏(轉屏)切換時的相關知識進行一下小結.

  1、如何判斷橫豎屏切換

  橫豎屏切換由手機系統自動完成的,在J2ME中只能檢測到這種變換,判斷橫豎屏切換的方法有2種:

  A)線程中每次檢測法(輪詢方式)

  這種方式是在程序的線程中每隔一定的時間間隔,就獲得一次屏幕的寬度和高度,然後判斷寬度和高度是否變化,如果寬度和高度和已有的寬度和高度相比發生了變化,至於是變化成橫屏還是豎屏則只需要比較寬高就可以實現.在判斷到橫豎屏切換時,執行邏輯代碼即可.

  使用這種方式由於每次線程循環都需要檢測,執行效率不高,但是由於一些轉屏手機不支持sizeChanged的方法回調,使用這種方式的通用性是最高的,是經常被使用的方法.

  B)sizeChanged法(中斷方式)

  這種方式是指如果轉屏手機對於MIDP支持比較規範,則當橫豎屏切換時會自動調用Canvas類中的sizeChanged方法,這樣就需要在Canvas的子類中覆蓋該方法即可,在該方法內部書寫橫豎屏切換的邏輯處理代碼即可.

  使用這種方式由於是系統自動調用,執行效率很好,但是由於部分手機實現的不規範,通用性沒有第一種方式高.

  說明:高級用戶界面自動切換,不需要書寫處理的代碼.

  2、如何處理橫豎屏切換

  在檢測到橫豎屏切換以後,就需要對於橫豎屏切換進行處理了,處理的方式一般有也有兩種:

  A)簡單提示法

  這種處理方式時指只實現一種屏幕模式下的邏輯,而在另外一種屏幕方式下顯示提示.例如只實現豎屏模式的界面,在橫屏模式下,只出現提示:「請在豎屏模式下使用本程序」.

  使用這種方式程序實現比較簡單,只需要實現一套界面即可,適合於比較簡單的程序.

  B)實現兩套UI法

  這種處理方式時指在一個程序中實現兩套界面:一套橫屏一套豎屏.可以在程序中設置一個screenType的參數,在每個節目的繪製方法中根據該參數判斷是橫屏還是豎屏,然後執行不同的繪製代碼即可.

  使用這種方式程序實現比較友好,但是程序開發和測試的工作量都要稍微大一點,橫豎屏切換時數據的變換也比較麻煩.

  3、其它說明

  在實現橫豎屏切換時,有些知識會幫助你實現一些很實用的功能:

  在Nokia手機上禁止橫豎屏切換:

  在S60 5th 及以上版本中,可以通過在jad或manifest文件中通過指定如下屬性來指定程序運行時的屏幕類型:

  豎屏:Nokia-MIDlet-App-Orientation:portrait

  橫屏:Nokia-MIDlet-App-Orientation:landscape


[火星人 ] J2ME編程 橫豎屏切換知識總結已經有288次圍觀

http://coctec.com/docs/java/show-post-59936.html