分辨率,是指單位長度內包含的像素點的數量,它的單位通常為像素/英寸(ppi)。以分辨率為1024×768的屏幕來說,即每一條水平線上包含有1024個像素點,共有768條線,即掃描列數為1024列,行數為768行。分辨率不僅與顯示尺寸有關,還受顯像管點距、視頻帶寬等因素的影響。
主流分辨率:
代號 | 分辨率 | 代號 | 分辨率 |
QVGA | 320*240像素 | WQVGA | 400*240像素 |
HVGA | 320*480像素 | VGA | 640*480像素 |
WVGA | 800*480像素 | XGA | 1024*480像素 |
QVGA 即Quarter VGA。顧名思義即VGA的四分之一尺寸
HVGA (Half-size VGA),即VGA(640*480)的一半
WVGA 即Wide VGA
WQVGA 全稱:Wide Quarter Video Graphics Array
sp dip px
sp :(scaled pixels—best for text size)——帶比例的像素。 主要是用於字體顯示,由此根據google的建議,TextView的字體大小最好用sp做單位,而且查看TextView的源碼可知Android默認使用水平作為字號單位。
dip:(device independent pixels)——設備獨立像素:這個和設備硬件有關,一般哦我們為了支持WVGA、HVGA和QVGA推薦使用這個,不依賴於像素。等同於dp。
一般以HVGA(320*480)為標准,比如說一個Button控件,width為160dip,則此Button在WVGA、HVGA、QVGA、WQVGA中寬度都為屏幕的一半
px:px(pixels)——像素:不同的設備顯示效果相同,一般我們HVGA代表320x480像素,這個用的比較多。在HVGA中 1dip = 1px(慎用!)
總結:字體用sp,其它控件用dip(dp)
高中低分辨率的處理
android開發 drawable(hdpi,mdpi,ldpi)的區別
android從2.1版本開始drawble分為drawable-mdpi、drawable-ldpi、drawable-hdpi三個,這三個主要是為了支持多分辨率。
drawable- hdpi、drawable- mdpi、drawable-ldpi的區別:
(1)drawable-hdpi里面存放高分辨率的圖片,如WVGA (480x800),FWVGA (480x854)
(2)drawable-mdpi里面存放中等分辨率的圖片,如HVGA (320x480)
(3)drawable-ldpi里面存放低分辨率的圖片,如QVGA (240x320)
系統會根據機器的分辨率來分別到這幾個文件夾里面去找對應的圖片。
在開發程序時為了兼容不同平台不同屏幕,建議各自文件夾根據需求均存放不同版本圖片。
在項目中使用實例:
<ImageView
android:src="@drawable/zxy" //依然使用drawble的路徑,而且圖片名不加格式
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
得到屏幕寬高代碼:
WindowManager wm = (WindowManager)getSystemService(WINDOW_SERVICE);
Display d = wm.getDefaultDisplay();
d.getWidth();
d.getHeight();