1、 資源圖片的適配:
在Android 2.1版本之前,存放資源圖片的文件夾名稱為drawable,應用程序用到的所有的資源圖片都放在其中,所以很難解決不同屏幕大小的圖片適配問題。自android 2.1版本開始,存放資源圖片的文件夾由原來的一個drawable文件夾變成了drawable-hdpi、drawable-mdpi和drawable-ldpi,這是為了支持不同終端設備的不同分辨率。
drawable-hdpi、drawable-mdpi、drawable-ldpi的區別:
(1) drawable-hdpi裡面存放高分辨率的圖片,如WVGA(480x800),FWVGA(480x854)
(2) drawable-mdpi裡面存放中等分辨率的圖片,如(320x480)
(3) drawable-ldpi裡面存放低分辨率的圖片,如QVGA(240x320)
系統會根據機器的分辨率來分別到這幾個文件夾裡面去找對應的圖片,同一資源的不同分辨率的圖片應該命以相同的名稱存放在不同的資源圖片文件夾中。
2、布局的適配:
在第1點中我們已經解決了資源圖片的適配問題,但是圖片的大小不同勢必會造成布局的差異,如果使用一個統一的布局文件,可能會造成資源圖片無法完整顯示在屏幕內,所以對於這種問題,解決方法是建立不同的layout文件夾,對於不同屏幕的分辨率,書寫其專用的.xml文件。
多個layout文件夾在命名上有相應規則,以分辨率480x854為例,需要建立480x854像素的layout文件夾,命名:layout-854x480,有兩點需要注意:①大數(854)必須在前,否則會報錯;②兩個數字之間的符號是小寫英文字母“x”,不是乘號。系統會根據機器的分辨率來分別到這幾個文件夾裡面去找對應的布局文件。
如果你建立的layout文件夾的分辨率是你的eclipse加載的android工具所支持的分辨率,那麼在可視化的布局界面中會自動給出屏幕分辨率、屏幕尺寸(紅色箭頭處)等參數,值得注意的是,如果紅色箭頭處是“Custom…”,那麼你就要人為對其進行修改,選擇合適的屏幕尺寸。
3、 設置屏幕的橫豎屏顯示:
如果不做特殊說明,開發的應用是橫豎屏重力敏感的,如果禁止橫豎屏切換,需要在AndroidManifest.xml文件中做相應的修改:
<activity android:name=".MenuView"
android:label="@string/app_name"
android:screenOrientation="portrait">
在activity的屬性中添加“android:screenOrientation="portrait"”,portrait表示豎屏,橫屏則用landscape表示。
4、 dip和px的問題:
在網上找了好多關於“dip和px的區別”的資料,但是解釋的都不是很清楚。我很膚淺的理解:dip是相對的,px是絕對的,所以dip能夠有效解決不同型號手機不同分辨率的布局適配問題。但是由於在第2點中已經用不同layout文件夾解決了布局適配的問題,所以在其中使用dip就是沒有意義的,甚至更加麻煩。既然已經分了不同的布局文件,所以在各個布局文件中直接使用px單位就可以了。