android DPI 表

来源:互联网 发布:数据编程入门 编辑:程序博客网 时间:2024/06/05 14:33
1、对于屏幕相关的参数概念:
In:英寸,长度单位,与像素密度无关。1in单位的物理大小在任何像素密度上都是一样的,其转换为px依赖于屏幕的像素密度;
Px:像素,是屏幕的像素点,对应的物理DPI(和后面讲到的Android DPI要区分开)是每英寸像素数,同样分辨率尺寸越大像素点越大,物理DPI值就越低,同一块屏幕的Px和物理DPI是相同的。
Dp或DIP:设备独立像素(device independent pixels),即dp(dip与dp完全相同,只是名字不同而已。在早期的Android版本里多使用dip,后来为了与sp统一就建议使用dp了),基于屏幕密度的抽象单位,不同设备不同显示屏显示效果不同和设备硬件有关,但与像素密度无关。dip/pixel = DPI/160,即1dip等价于DPI为160的设备中的1个像素点。
Sp:同dp相似,主要处理字体的大小,与像素密度无关。与dp类似,但是可以根据字体大小选项进行缩放。
为了保持性能、显示质量和兼容性,Android建议显示长度以“dp”为单位。在设计时只需参考换算成“dp”后的屏幕为设计输入,减少对屏幕尺寸及像素的依赖。“dp”是个虚拟概念,设计时只需以相同的“px”尺寸进行设计即可。

2、屏幕物理DPI的算法和举例
N:屏幕物理DPI值  
A、B:屏幕的分辨率数值
C:屏幕对角线长度
N = √(A²+B²) /C
例如:一个1280*800的8寸屏幕,A=1280、B=800、C=8, 物理N=√(1280²+800²) /8=188DPI
物理DPI只是算出来只是可建议指导软件在定义Android DPI的参考值,真实在软件实现过程中可根据此参考值做适当的选择规范DPI进行设计开发。因为分辨率、尺寸等各个厂家都是不可控的,故物理DPI是不可能统一标准大小的。Android系统是一个开放的系统,被很多终端设备厂商采用。对于不同屏幕尺寸和分辨率的支持,是Android系统的设计目标之一,所以Android在定义指导软件原则的时候则给出了Android DPI这样一个软件标准,各厂家或App只需要按照Android DPI才可能做出适用多分辨率、多厂家即可满足多种使用要求。下来我们介绍Android DPI的定义。  

3、Android DPI的参数解释
Android 3.0定义的Android DPI取值为:120DPI、160DPI,240DPI,320DPI
Android 4.2定义的Android DPI取值为:120DPI、160DPI,213DPI(TVDPI),240DPI,320DPI,480DPI
Android 4.4定义的Android DPI取值为:120DPI、160DPI,213DPI,240DPI,320DPI,400DPI480DPI,640DPI
Density
scale
1dp对应像素
1dp对应物理尺寸
MDPI(160DPI)
1.0px/dp
1.0px
1.0/160 = 1/160 in
TvDPI(213DPI)
1.33px/dp
1.33px
1.3/160=1/160 in
HDPI(240DPI)
1.5px/dp
1.5px
1.5/240 = 1/160 in
XhDPI(320DPI)
2.0px/dp
2.0px
2.0/320 = 1/160 in
1.5xhDPI(400DPI)
2.5px/dp
2.5px
2.5/400=1/160 in
xxhDPI(480DPI)
3.0px/dp
3.0px
3.0/480 = 1/160 in
xxxhDPI(640DPI)
4.0px/dp
4.0px
4.0/640 = 1/160 in

0 0
原创粉丝点击