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