对于熟悉终端数码产品的用户,一般在购买产品的时候会比较关注产品的尺寸、分辨率是不是高清等等,但是真正用户能体会到的屏幕高清和以下参数都有相关,你知道吗?
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,
400DPI,
480DPI,
640DPI
从Android的发展来看,其也是从易用性和屏幕种类发展在不断地完善自己的Android DPI的类型,满足逐渐对Android有需求的电视分辨率、2K屏等带来的更多的物理DPI屏幕需求。产品在设计之初对Android DPI影响的是当前界面的显示字体和dp定义的高度和宽度等都有考虑,定义选择任意一种DPI值都是根据其产品的定位、产品形态等等多重考虑来确定的,一切以最佳的使用体验为目标。Android DPI的确定并不会影响物理DPI值,所以高清屏仍旧还是高清屏,图片、视频的高清播放和查看完全不会受影响。