Android 多解析度自適應總結

來源:互聯網
上載者:User

標籤: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 多解析度自適應總結

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.