Android 多分辨率自適應總結

jopen 9年前發布 | 22K 次閱讀 Android Android開發 移動開發

一、一般基本原則以及總結
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-screens  
    android: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吧,不然遇到一直使用著超大字體的用戶,字體可能橫向被截了,而用戶不知情,會覺得是程序問題。

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!