特别声明:如果您喜欢小站的内容,可以点击申请会员进行全站阅读。如果您对付费阅读有任何建议或想法,欢迎发送邮件至: airenliao@gmail.com!或添加QQ:874472854(^_^)
特别声明: 文章中图片源于互联网,有些方案也源于互联网,如有觉得侵权,可以告之在下,我会删除!谢谢!
面对于不同移动设备,特别是针对于屏幕高度的设计和适配,一直是困扰着视觉和前端。特别是设计师和前端开发人员之间的协调,沟通的成本也随着增加。那么这篇文档,主要是用于移动端设计和适配(针对屏幕高度方面),希望通过文档的形式能减少设计师和开发人员之间的一些沟通成本,同时让前端开发人员用最低的时间成本来完成终端设备的UI适配工作。
了解一些概念
不管是设计师或者开发人员,对于一些概念都应该要有一定的了解,这样相互沟通的时候就不会因为一些术语感到困惑。接下来简单的了解一些概念:
什么是DPI、PPI?
DPI(Dots Per Inch)是测量空间点密度的单位,最初应用于打印技术中,它表示每英寸能打印上的墨滴数量。较小的DPI会产生不清晰的图片。
后来DPI的概念也被应用到了计算机屏幕上,计算机屏幕一般采用PPI(Pixels Per Inch)来表示一英寸屏幕上显示的像素点的数量,现在DPI也被引入。
个应用实例: 27寸Mac影院显示屏的PPI是109
,这表示在每英寸的屏幕上显示了109
个像素点。斜角长是25.7英寸(65cm
),实际屏幕的宽度大概是23.5英寸,23.5109
约等于2560
,因此原始屏幕分辨率就是2560 x 1440px
。
屏幕分辨率(原始分辨率)
屏幕分辨率对用户如何理解设计有很大的影响。幸运的是,自从LCD显示器代替了CRT,现在的用户更趋向于使用原始分辨率,它保证了好的屏幕尺寸或者说PPI比例。
分辨率定义了屏幕上显示的像素数量(比如:27寸的显示器分辨率是2560 x 1440px
,2560px
是宽,1440px
是高)。在了解了PPI之后,我们就知道它不是一个测量物理大小的单位。你可以有一个2560 x 1440
屏幕,它能跟墙一般大,也可以跟脑袋一般小。
一个27寸的影院显示屏,原始分辨率为2560 x 1440px
,PPI为109。如果减小分辨率,元素将会显示得更大,因为有23.5英寸的水平宽度需要数量远远不够的像素点来填满。
如例子所示,屏幕的原始分辨率是2560 x 1440px
。如果分辨率减小,像素点还是被展示在PPI为109的屏幕上。你的操作系统会自动拉伸所有元素来填补间隙,使得整个屏幕被填满。GPU/CPU会捕获所有像素点并且使用新的比例重新计算他们。
如果想要设置27寸屏幕分辨率为1280 x 720
(之前宽的一半,高的一半),GPU会让一个像素点变成原来的2
倍大来填充屏幕,那么结果就是会变得模糊。在分辨率为原来一半的时候,因为有简单分频器的存在可能看着还算可以。但是如果使用原来的1/3
或者3/4
,最终会以小数点结束,就不能等分一个像素点了。我们来看下面的例子:
思考后面的例子:在原始分辨率的屏幕上画一条1px
的线,然后设置分辨率为50%
。为了填满屏幕,CPU需要制造150%
的视觉效果,所有像素点都要乘以1.5
,1 x 1.5 = 1.5
,但是因为不能有半个像素点,这就使得填充周围的像素点的颜色只有一部分,便产生了模糊。
注意,我们通常所说的显示器分辨率,其实是指桌面设定的分辨率,而不是显示器的物理分辨率。只不过现在液晶显示器成为主流,由于液晶的显示原理与CRT不同,只有在桌面分辨率与物理分辨率一致的情况下,显示效果最佳,所以现在我们的桌面分辨率几乎总是与显示器的物理分辨率一致了。
什么是视网膜显示屏?
“Retina(视网膜)显示屏”是Apple公司在发布iPhone 4时引入的。之所以叫做Retina是因为设备的PPI非常高以至于人的视网膜也不能在屏幕上分辨出像素点来。
这个说法在现在的设备的屏幕范围内是正确的,但是随着屏幕越来越好,我们的眼睛也会被训练得足够感知像素点,特别是圆形的UI元素。
从技术的角度来讲,他们做的就是在完全相同的物理大小上展示比原来高和宽多一倍的像素点。
iPhone 3G/S是3.5英寸的斜角,分辨率为480 x 320px
,PPI为163
。 iPhone 4/S是3.5英寸的斜角,分辨率为960 x 640px
,PPI为326
。
事实证明正好是两倍的关系,同样的物理大小,屏幕上的元素却有两倍的清晰度,因为他们有两倍的像素点。1
个标准的像素=4
个Retina像素,像素的四倍。
思考下面的例子,在复杂设计中如何直接应用:
什么是像素比?
当你的设计需要在不同PPI下转换时,像素比就是你的救星。当你知道像素比后,就不需要再考虑设备的详细规格了。
以iPhone 3G和4为例,相同物理大小上iPhone4的像素点是3G两倍,因此像素比就是2
,这表示只需要用你的资源乘以2
,就可以兼容4G的分辨率了。
让我们先创建一个44 x 44px
的iOS上被推荐的touch按钮(我后面会介绍),定义为典型按钮“Jim”。 为了让Jim在iPhone 4上看起来更好,需要创建一个它两倍大小的版本。下面就是我们做的。
什么是DP、PT、SP?
设备像素(物理像素),顾名思义,显示屏是由一个个物理像素点组成的,通过控制每个像素点的颜色,使屏幕显示出不同的图像,屏幕从工厂出来那天起,它上面的物理像素点就固定不变了,单位
pt
。
DP或PT是测量单位,你可以用来规范你的各种设备和多DPI的app模型。 DP(Dip)表示独立于设备的像素点,PT表示点。DP用在Android上,PT用在Apple上,但是他们本质上是相同的。
简而言之,它能定义独立于设备的像素比的大小,这会包含在不同角色(如设计师和工程师)之间的讨论规则中。
继续说前面“Jim”按钮的例子。 Jim在标准的非Retina屏幕上宽度为44px
,在Retina屏幕上是88px
。从技术上给Jim添加20px
的padding
,在Retina上padding
是40px
。但是,当你基于非Retina屏幕设计时计算Retina的像素值并没什么意义。
因此我们需要做的就是以标准的100%
非Retina比例作为一切设计的基础。
在这种情况下,Jim的大小就是44 x 44DP
(PT),padding
为20DP
(PT)。你可以在任何PPI上执行你的规范,Jim仍然是44 x 44dp/pt
。
Android和iOS会调整自身大小适应屏幕并且使用正确的像素比来进行换算,这就是为什么我发现使用屏幕的原始的PPI设计会更简单。
物理像素(physical pixel)
一个物理像素是显示器(手机屏幕)上最小的物理显示单元,在操作系统的调度下,每一个设备像素都有自己的颜色值和亮度值。
设备独立像素(density-independent pixel)
设备独立像素(也叫密度无关像素),可以认为是计算机坐标系统中得一个点,这个点代表一个可以由程序使用的虚拟像素(比如: CSS像素),然后由相关系统转换为物理像素。
所以说,物理像素和设备独立像素之间存在着一定的对应关系,这就是接下来要说的设备像素比。
设备像素比(device pixel ratio )
设备像素比(简称dpr
)定义了物理像素和设备独立像素的对应关系,它的值可以按如下的公式的得到:
设备像素比 = 物理像素 / 设备独立像素 // 在某一方向上,x方向或者y方向
设备像素比(dpr
) 是指在移动开发中1
个CSS像素占用多少设备像素,如2
代表1
个CSS像素用2 x 2
个设备像素来绘制。
设备像素比(dpr
),公式为1px = (dpr)^2 * 1dp
,可以理解为1px
由多少个设备像素组成;
位图像素
一个位图像素是栅格图像(如:png, jpg, gif等)最小的数据单元。每一个位图像素都包含着一些自身的显示信息(如:显示位置,颜色值,透明度等)。
CSS像素
虚拟像素,可以理解为“直觉”像素,CSS和JavaScript使用的抽象单位,浏览器内的一切长度都是以CSS像素为单位的,CSS像素的单位是
px
。
在CSS规范中,长度单位可以分为两类,绝对(absolute)单位以及相对(relative)单位。px
是一个相对单位,相对的是设备像素(Device Pixel)。
在同样一个设备上,每1
个CSS像素所代表的物理像素是可以变化的(即CSS像素的第一方面的相对性); 在不同的设备之间,每1
个CSS像素所代表的物理像素是可以变化的(即CSS像素的第二方面的相对性)。
根据 维基百科的解释:
它是图像显示的基本单元,既不是一个确定的物理量,也不是一个点或者小方块,而是一个抽象概念。所以在谈论像素时一定要清楚它的上下文!一定要清楚它的上下文!一定要清楚它的上下文!
不同的设备,图像基本采样单元是不同的,显示器上的物理像素等于显示器的点距,而
如需转载,烦请注明出处:https://www.w3cplus.com/mobile/mobile-design-and-adapter.html
如果文章中有不对之处,烦请各位大神拍正。如果你觉得这篇文章对你有所帮助,打个赏,让我有更大的动力去创作。(^_^)。看完了?还不过瘾?点击向作者提问!