標籤:resolution definition px dp dip
1、Android手機常見解析度
WVGA:800x480
FWVGA:854x480
QHD:960x540
720P:1280x720(標清,standard definition,SD)
1080P:1920x1080(高清,high definition,HD)
2、解析度對應dpi
dpi(dots per inch,DPI)
hdpi對應WVGA、FWVGA、QHD。
xhdpi對應720P。
xxhdpi對應1080P。
3、AndroidManifest.xml設定
android:anyDensity="true"時,應用程式安裝在不同密度的終端上時,程式會分別載入xxhdpi、xhdpi、hdpi、mdpi、ldpi檔案夾中的資源。
android:anyDensity="false"時,即使在檔案夾下擁有相同資源,應用不會自動地去相應檔案夾下尋找資源。
4、橫屏豎屏目錄區分
1)drawable
drawable-land-hdpi,當螢幕為橫屏,且為高密度時,載入此檔案夾的資源。
drawable-port-hdpi,當螢幕為豎屏,且為高密度時,載入此檔案夾中的資源。
(2)layout
在res目錄下建立layout-port和layout-land兩個目錄,裡面分別放置豎屏和橫屏兩種布局檔案,以適應對橫屏豎屏自動切換。
5、多屏適配原則
(1)在layout檔案中設定控制項尺寸時應採用fill_parent、match_parent、wrap_content和dp。具體來說,設定view的屬性android:layout_width和android:layout_height的值時,fill_parent、match_parent、wrap_content和dp比px更好,文字大小應該使用sp來定義。
(2)在程式的代碼中不要出現具體的像素值,在dimens.xml中定義。為了適應多種螢幕,android建議開發人員不要使用具體的像素來表示控制項尺寸。
6、9-patch圖片
在android中,不僅可以使用.png、.jpg、.gif的普通圖片作為圖片資源,而且可以將副檔名為.9.png的9-patch圖片作為圖片資源。android的SDK目錄tools下的draw9patch工具可以產生一個可以伸縮的標準png映像,該映像的副檔名為.9.png。9-patch圖片通常用作背景,與普通圖片不同的是,使用9-patch圖片作為螢幕或者按鈕背景時,當螢幕尺寸或按鈕大小改變時,圖片可自動縮放,達到不失真效果。
9-patch PNG圖片,在原生PNG圖片四周空出一個像素間隔,用來標識PNG圖片中哪些部分可以展開、哪些不可以展開、背景上的邊框位置等。
7、不同layout
怎樣才能讓Application自動適應不同的螢幕呢?
其實很簡單,只需要在res目錄下建立不同的layout檔案夾,比如layout-640x360、layout-800x480等,所有的layout檔案在編譯之後都會寫入R.java裡,而系統會根據螢幕的大小自己選擇合適的layout進行使用。
8、dip、dp、px、sp介紹
dip:device independent pixels,裝置獨立像素。
dp:很簡單,和dip是一樣的。
px:pixel,像素。
sp:scaled pixels,主要用於字型顯示。
9、螢幕解析度、大小、密度
(1)螢幕解析度:螢幕解析度就是手機螢幕的像素點數,指螢幕橫豎各有多少個像素,一般描述成螢幕的“寬×高”。安卓手機螢幕常見的解析度有480×800、720×1280、1080×1920等,例如720×1280表示此螢幕在寬度方向有720個像素,在高度方向有1280個像素。
(2)螢幕大小:螢幕大小是手機對角線的物理尺寸,以英寸(inch)為單位。比如某某手機為“5寸大屏手機”,就是指對角線的尺寸為5英寸,5寸×2.54厘米/寸=12.7厘米。
(3)螢幕密度:螢幕密度就是每英寸的像素點數,數值越高當然顯示越細膩。對於螢幕來說,dpi越大,螢幕的精細度越高,螢幕看起來就越清楚。手機可以有相同的解析度,但螢幕尺寸可以不相同。