隨著手機功能豐富,支援橫豎屏切換的手機越來越多,軟體開發中必須處理此功能。以下總結 J2ME 編程中橫豎屏切換相關知識。
橫豎屏切換由手機系統自動完成,J2ME 只能偵測變化,判斷方法有二:
在程式線程中每隔固定間隔獲取螢幕寬高,判斷是否變化。寬高互換即為切換。優點:通用性最高,許多手機不支援 sizeChanged 回調。缺點:每次循環檢測,執行效率較低。
若手機對 MIDP 實現規範,切換時自動調用 Canvas.sizeChanged 方法,覆寫該方法即可編寫邏輯。優點:系統自動調用,效率高。缺點:部分手機實現不規範,通用性較低。
說明:高級使用者界面自動切換,無需撰寫處理代碼。
偵測到切換後,處理方式有二:
僅實現一種螢幕模式邏輯,另一模式下顯示提示(如「請在豎屏模式下使用」)。適合簡單程式,開發量小。
程式中實現兩套界面:橫屏與豎屏各一套。設 screenType 參數,繪製方法中判斷執行不同代碼。體驗友好,但開發測試工作量較大,切換時資料轉換較麻煩。
在 Nokia 手機上禁止橫豎屏切換:
S60 5th 及以上版本,可在 JAD 或 Manifest 指定屬性:
Nokia-MIDlet-App-Orientation: portraitNokia-MIDlet-App-Orientation: landscape不足之處歡迎指正、交流與完善!