標籤:xml 布局 dp
這周的工作對Android項目多解析度自適應進行調整。故對這方面知識進行不斷的嘗試學習。Android項目剛開始做的時候一定養成編程習慣,所有資源調用放在value中。統一命名以及管理。總結了以下內容。
一、一般基本原則以及總結
1、xml布局中不要寫死, 既單位不要用px,盡量用dp,或者match、warp
2、應該盡量把資源圖片設計成可以展開的.9圖,如果有漸層,盡量橫向或豎向單方向漸層,這樣能大大減小安裝包大小,同時也能提高處理速度。
3、如果不想設計多套圖片,那就設計最大的那套。壓縮總比展開好,放在drawable-xhdpi這個檔案夾。
4、寫幾套value值,對應不同解析度。一套layout即可。如所示。
5、建立多個layout檔案夾,檔案夾名稱為layout-800x480等。需要適應那種解析度就寫成什麼。(這種方式太累了,還會導致應用大,不建議)
6、迫不得已要重寫部分layout的xml。
layout-1024x768
layout-1024x600
layout-1280x768
layout-land-1024x720 //1024x768橫屏
layout-port-976x768 //1024x768豎屏
注意格式,【layout】-【port/land】-【長度x寬度】
注意事項:
在android3.0後,要適配如上的解析度,需將高度減去48像素,即底部狀態列的高度,android方可識別。
解析度中大的數字必須寫到前面,否則會產生語法錯誤。
7、
<supports-screensandroid:largeScreens="true"android:normalScreens="true"android:anyDensity = "true"/>
android:anyDensity="true" ,這一句對整個的螢幕都起著十分重要的作用,值為true,我們的應用程式當安裝在不同密度的手機上時,程式會分別載入hdpi,mdpi,ldpi檔案 夾中的資源。
在</application>標籤和</manifest> 標籤之間添加上面那段代碼。即可
二、附上Android部分螢幕解析度,像素知識。
低密度(120),ldpi
中密度(160),mdpi
高密度(240),hdpi
小螢幕
1、QVGA(240×320),2.6~3.0寸
普通螢幕
1、WQVGA(240×400),3.2~3.5寸
2、FWQVGA(240×432),3.5~3.8寸
3、HVGA(320×480),3.0~3.5寸
4、WVGA(480×800),3.3~4.0寸
5、FWVGA(480×854),3.5~4.0寸
大螢幕
1、WVGA(480×800),4.8~5.5寸
2、FWVGA(480×854),5.0~5.8寸
螢幕尺寸分為:small,normal,large,xlarge分別表示小,中,大,超大屏
螢幕密度分為:ldpi,mdpi,hdpi,xhdpi,它們的標準值分別是:120dpi,160dpi,240dpi,320dpi
px(像素):螢幕上的點。
in(英寸):長度單位。
mm(毫米):長度單位。
pt(磅):1/72英寸。
dp(與密度無關的像素):一種基於螢幕密度的抽象單位。在每英寸160點的顯示器上,1dp = 1px。
dip:與dp相同,多用於android/ophone樣本中。
sp(與刻度無關的像素):與dp類似,但是可以根據使用者的字型大小喜好設定進行縮放。
由此,根據 google 的建議,TextView 的字型大小最好使用 sp 做單位,而且查看TextView的源碼可知 Android 預設使用 sp 作為字型大小單位。
關於sp與dp的選擇的建議是:
1、如果textview的顯示地區可以彈性變化(wrap_content,當然其所有父view也需要可以彈性變化),這時可以優先考慮用sp,這時字型大小更改一般來說不會破壞介面的可用性
2、 與1情況相反時,textview的顯示地區已經限定在一個固定值(或者其父view被限定了),這時優先考慮用dp吧,不然遇到一直使用著超大字型的使用者,字型可能橫向被截了,而使用者不知情,會覺得是程式問題。
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
Android 多解析度自適應總結