1 Android手機目前常見的分辨率
1.1 手機常見分辨率:
4:3
VGA???? 640*480 (Video Graphics Array)
QVGA? 320*240 (Quarter VGA)
HVGA? 480*320 (Half-size VGA)
SVGA? 800*600 (Super VGA)
5:3
WVGA? 800*480 (Wide VGA)
16:9
FWVGA 854*480 (Full Wide VGA)
HD??????? 1920*1080 High Definition
QHD???? 960*540
720p??? 1280*720? 標清
1080p? 1920*1080 高清
手機:
iphone 4/4s??? 960*640 (3:2)
iphone5???????? 1136*640
小米1???????????? 854*480(FWVGA)
小米2???????????? 1280*720
1.2 分辨率對應DPI
"HVGA??? mdpi"
"WVGA?? hdpi "
"FWVGA hdpi "
"QHD????? hdpi "
"720P???? xhdpi"
"1080P?? xxhdpi "
在中Menifest中添加子元素
android:anyDensity="true"時芦倒,應用程序安裝在不同密度的終端上時艺挪,程序會分別加載xxhdpi、xhdpi熙暴、hdpi闺属、mdpi慌盯、ldpi文件夾中的資源。
相反掂器,如果設為false亚皂,即使在文件夾下?lián)碛邢嗤Y源,應用不會自動地去相應文件夾下尋找資源:
1) 如果drawable-hdpi国瓮、drawable-mdpi灭必、drawable-ldpi三個文件夾中有同一張圖片資源的不同密度表示,那么系統(tǒng)會去加載drawable_mdpi文件夾中的資源乃摹;
2) 如果drawable-hpdi中有高密度圖片禁漓,其它兩個文件夾中沒有對應圖片資源,那么系統(tǒng)會去加載drawable-hdpi中的資源孵睬,其他同理播歼;
3) 如果drawable-hdpi,drawable-mdpi中有圖片資源,drawable-ldpi中沒有掰读,系統(tǒng)會加載drawable-mdpi中的資源秘狞,其他同理,使用最接近的密度級別蹈集。
1) drawable
a) drawable-hdpi該圖片即適用于橫屏烁试,也適用于豎屏;
b) drawable-land-hdpi,當屏幕為橫屏拢肆,且為高密度時减响,加載此文件夾的資源;
c) drawable-port-hdpi,當屏幕為豎屏郭怪,且為高密度時支示,加載此文件夾中的資源。其他同理移盆。
2) layout
在res目錄下建立layout-port和layout-land兩個目錄悼院,里面分別放置豎屏和橫屏兩種布局文件伤为,以適應對橫屏豎屏自動切換咒循。
1) 在layout文件中設置控件尺寸時應采用fill_parent、wrap_content绞愚、match_parent和dp叙甸;
具體來說,設置view的屬性android:layout_width和android:layout_height的值時位衩,wrap_content裆蒸,match_parent或dp比px更好,文字大小應該使用sp來定義糖驴。
2) 在程序的代碼中不要出現(xiàn)具體的像素值僚祷,在dimens.xml中定義佛致;
為了使代碼簡單,android內(nèi)部使用pix為單位表示控件的尺寸辙谜,但這是基于當前屏幕基礎上的俺榆。為了適應多種屏幕,android建議開發(fā)者不要使用具體的像素來表示控件尺寸装哆。
3) 不使用AbsoluteLayout(android1.5已廢棄) 罐脊,可以使用RelativeLayout替代;
4) 對不同的屏幕提供合適大小的圖片蜕琴。
不同大小屏幕用不同大小的圖片萍桌,low:medium:high:extra-high圖片大小的比例為3:4:6:8;舉例來說凌简,對于中等密度(medium)的屏幕你的圖片像素大小為48×48上炎,那么低密度(low)屏幕的圖片大小應為36×36,高(high)的為72×72雏搂,extra-high為96×96反症。
使用圖片資源時,如果出現(xiàn)拉伸畔派,因為圖片處理的原因铅碍,會變形,導致界面走形线椰。9-patch PNG圖片也是一種標準的PGN圖片胞谈,在原生PNG圖片四周空出一個像素間隔,用來標識PNG圖片中哪些部分可以拉伸憨愉、哪些不可以拉伸烦绳、背景上的邊框位置等。
“上配紫、左”定義可拉伸區(qū)域
“右径密、下”定義顯示區(qū)域,如果用到完整填充的背景圖躺孝,建議不要通過android:padding來設置邊距享扔,而是通過9-patch方式來定義。
Android SDK中提供了編輯9-Patch圖片的工具植袍,在tools目錄下draw9patch.bat惧眠,能夠立刻看到編輯后的拉伸效果,也可以直接用其他圖片編輯工具編輯于个,但是看不到效果氛魁。
Android手機屏幕大小不一,有480x320, 640x360, 800x480……
怎樣才能讓Application自動適應不同的屏幕呢?
其實很簡單秀存,只需要在res目錄下創(chuàng)建不同的layout文件夾捶码,比如:layout-640x360、layout-800x480……所有的layout文件在編譯之后都會寫入R.java里或链,而系統(tǒng)會根據(jù)屏幕的大小自己選擇合適的layout進行使用宙项。