移动设备分辨率

来源:互联网 发布:宁波奥园誉湖湾 知乎 编辑:程序博客网 时间:2024/04/27 19:05

1,手机分辨率

其实手机屏幕是以手机的对角线长度来计算的,如4.3英寸的手机屏幕,实际上指的是手机对角线的长度是4.3英寸,1英寸等于2.54厘米,大家自己算算就知道手机屏幕有多大了。

2, px和pt

Px ,是英文单词pixel的缩写,意为像素。在设计领域中,像素是用来计算数码影像的一种单位。计算机中显示的图像并非连续的线条组成,而是由许多肉眼看不见的小点组成。如果把把影像放大数倍,会发现这些连续色调其实是由许多色彩相近的小点所组成,这些小点就是构成影像的最小单位“像素”。由于是最小的独立显示单位,px均为整数,不会出现0.5px的情况。

Pt,则是point的缩写,一般音译为磅数,也有人直译为点数,请大家自行转换。这是使用在印刷领域的单位,一磅等于1/72英寸。在国际上一般会用pt作为字体的单位。
一般情况下,设计师们采用px来进行标注设计图中的图形,用pt来标注文字。在过去很多年的视觉设计中,px和pt的配合堪称天衣无缝,把PC打扮得花枝招展,堪称史上最佳配合的好伙伴。

3,DPI

什么是DPI

DPI是pixels per inch的缩写简称,表示的是每英寸显示屏所拥有的像素(pixel)数目。

为什么要计算DPI

手机屏幕距离你的眼睛10-12英寸(约25-30厘米)时,它的分辨率只要达到300DPI这个神奇数字(每英寸300个像素点)以上,你的视网膜就无法分辨出像素点了,这样的320以上被称为“视网膜屏幕”。由于其具备超高的像素密度,因此屏幕显示异常清晰、锐利。而通常电脑显示屏幕的分辨率为72DPI。如果想了解你的手机是否拥有“视网膜(Retina)屏幕”,就要计算手机屏幕的DPI了。


怎么计算手机显示屏的DPI

DPI的计算公式表达为 DPI=√(X²+Y²)/ Z (X:长度像素数;Y:宽度像素数;Z:屏幕尺寸)。计算公式如下图,图片中错误应该为DPI


比如iPhone 5的屏幕DPI计算:iPhone 5屏幕分辨率为1136x640像素,屏幕尺寸为4英寸。代入公式DPI=√(1136²+640²) / 4,结果为325DPI,符合“视网膜屏幕”的特征。


4,PPI

ppi见另一遍文章《PPI与DPI》。

主要区别是ppi是图像软件输入领域,dpi是硬件输出领域(如打印照片等)。

5,Android分辨率

屏幕物理尺寸3.2、3.5、3.75、4.0、4.3、5.0、7、9.3、10.1。

为了更好的描述这种多样化引发的问题,需要引入一个新的概念density,也就是密度。它指的是在一定尺寸的物理屏幕上显示像素的数量,一般使用dpi(dots per inch,每英寸像素数)作为单位。比如一台分辨率为240x320,屏幕物理尺寸为1.5英寸x2英寸的手机,他的密度可以用分辨率/尺寸,240/1.5或者320/2,密度为160dpi。对于用户来说,密度越大的屏幕显示效果越精细,因为每英寸显示的像素数量更多。
如果是要使用px和pt给程序贴图,假设生成了一条240px的直线,在240*320的屏幕上刚好可以铺满,而放到480x800的分辨率下才刚刚到一半的位置。

如果要解决这样的问题,那么程序在实现的时候就必须为每个分辨率都写一个配置,否则就会出现图形在低密度的屏幕上显示的更大,而在高密度的屏幕上显示的更小。最麻烦的事情在于,一旦出现新的分辨率,所有程序都没办法直接运行了。这明显不符合手机快速发展的客观规律。

dp和sp

为了解决这个问题,Google为Android引入了一套新的单位dp和sp。
首先登场的是dp,Density Independent Pixel,可以翻译为密度无关像素。和px相比,dp在不同密度的屏幕中实际显示比例将保持一致。根据规定,一个dp相当于160dpi屏幕中的一个px。在320dpi的屏幕中,一个dp相当于2个px。通过这样的成比例放缩,Android解决了需要多个不同屏幕中的大小显示问题。
为了便于对多屏幕进行管理,Android对屏幕密度做了重新的规定,将密度与分辨率绑定起来


由上图可知,PPI在120-160之间的手机被归为低密度手机,160-240被归为中密度,240-320被归为高密度,320以上被归为超高密度(Apple给了它一个上流的名字——retina)。


具体而言,当屏幕的的分辨率为320x480时,无论实际的物理尺寸大小,密度都会被设置为160dpi,也就意味着这个设备上,一行最多可以放置320dp,而对于480x800的设备,只需屏幕尺寸在3寸到4.3寸之间,密度都会被设置为240dpi,一行同样可以放置320dp。

因此在开发中,用dp作为单位,只需要设置一次,就可以适配到多个屏幕上。
同样,sp,scaled pixels,这个单位也采用了和dp同样的设计理念,将需要独立设置的pt转化为可以自动适配的sp,从而解决了文字的优化显示。

6,使用px的麻烦

既然android提供了这么方便的适配机制,设计师的效果图也如此惊艳,为什么最后实现出来的效果经常会让人大跌眼镜,列表的高度不对,文字的大小不对。原因何在呢?
原因也正好出现在设计和实现的单位转换上。
设计师在设计的过程中,一般仍然采用了px和pt作为标注单位。根据目前的主流分辨率和发展趋势来看,我们将480x800定义为设计图的基准版本。通过查询上边的密度对应表,我们可以看到在这个分辨率下1dp=1.5px。
举例而言,19px的线条,转化成dp,应该使用19px/1.5= 12.67,由于dp无法支持小数点,所以一般会增加0.5dp,再四舍五入,变为13dp。当他显示到屏幕中的时候,仍然会对应成为真实的像素13dp*1.5=19.5,最终显示将会变为20px。这样的差异可能会体现在软件的各个地方,在每一个px都是体验问题的时代,就变得让人难以接受了。


参考:

dp和px,那些不得不吐槽的故事——Android平台图片文字元素单位浅析 

0 0
原创粉丝点击