2011-04-21

Android Portrait vs Landscape Mode

在 Android emulator 按下 ctrl + Fll 可以切換螢幕的顯示方式為 Portrait 模式(直向)或 Landscape 模式(橫向)。

Android 預設為 Portrait 模式,其設定檔位於 res/layout。

若要設定不同於 Portrait 的 Landscape 模式,可以另外建立 res/layout-land 目錄,這樣就可以使用完全不同的設定檔。

事實上, Portrait 模式是讀取 res/layout-port 目錄下的設定檔,因為沒有 res/layout-port 這個目錄,所以 Android 就會使用預設的目錄,也就是 res/layout。


Android 沒有提供 api 可供自行決定載入那一種設定檔,但是有提供 api 可以動態切換不同模式。
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
除了 layout 是設定檔驅動,res 目錄下的功能都是設定檔驅動。

另外除了螢幕顯示方向以外,還有很多模式可供自訂,甚至可以結合多種設定,如小螢幕 Landscape 模式的 layout 就可以用 res/layout-land-small,或者大螢幕的 drawable 可以用 res/drawable-large。

包括語系也是在這裡設定,所有設定值請看這裡

最後,不管使用哪一種設定,程式參考設定檔時,是不用管(也沒法管)是用哪一種設定,所以使用 R.layout.main 就可以了。

沒有留言:

張貼留言