分辨率,是指单位长度内包含的像素点的数量,它的单位通常为像素/英寸(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();