Android分辨率詳解
1、Android手機常見分辨率
WVGA:800x480
FWVGA:854x480
QHD:960x540
720P:1280x720(標清,standard definition,SD)
1080P:1920x1080(高清,high definition,HD)
2、分辨率對應dpi
dpi(dots per inch,每英寸點數)
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越大,屏幕的精細度越高,屏幕看起來就越清楚。手機可以有相同的分辨率,但屏幕尺寸可以不相同。