iPhone屏幕分辨率和适配规则(规则篇)

在上一篇文章《iPhone屏幕分辨率和适配规则(基础篇)》中,讲了iPhone分辨率的基础概念。这一篇我们讲讲屏幕适配。

物理像素和逻辑像素

要讲屏幕适配,物理像素和逻辑像素是两个绕不开的概念。先来看一下为什么要有两个像素单位。

如果使用物理像素

我们来假设一个问题,如果只用物理像素(pixel)来作为单位,会出现什么问题。

来看一下,一个100px的正方形在不同手机下的打开的效果。

100px的正方形

iPhone 3GS和iPhone 4的屏幕大小一样,但是iPhone 4的像素密度是iPhone 3GS的2两倍。所以一样100px的正方形,在iPhone 4上看起来像是缩小了一倍。在iPhone 4和iPhone 6上的显示大小是一样的。

如果使用逻辑像素

所幸的是,我们看到的是iPhone 3GS和iPhone 4的逻辑像素(point)是一致的。如果使用逻辑像素,100pt的正方形在不同手机下打开的效果是如何的。

100pt的正方形

好了,可以看到100pt的正方形在所有屏幕上看起来大小都一样了。

事实上,iPhone使用的就是逻辑像素作为显示单位的。

适配的过程

iPhone 6和iPhone 6 Plus的尺寸是比较神奇的。我们以iPhone 6的例子来看看适配的过程。

从UI到开发

开发实际使用的单位是pt。而UI给出的视觉稿是以px为单位的。所以,首先需要将px转化成pt。

在这一步,要搞清楚UI给出的视觉稿以什么分辨率作为基准。如果是iPhone 6的640 × 960px,则用@2x作为缩放因子。如果是iPhone 6 Plus的1242 × 2208px(注意,不是1080 × 1920px),则用@3x作为缩放因子。

假设以iPhone 6作为基准,需要绘制一个40px的按钮。以@2x进行缩放,开发以20pt进行绘制。

在实际设计中,经常以iPhone 6作为基准,向下可以适配iPhone 5,向上可以适配 iPhone 6 Plus。

从逻辑像素到物理像素

当这个设计稿在iPhone 6和IPhone 6 Plus进行渲染时,渲染后结果为。

设备 缩放因子 逻辑像素 物理像素
iPhone 6 @2x 20pt 40px
iPhone 6 Plus @3x 20pt 60px

明显的,我们可以看到iPhone 6和iPhone 6 Plus相差了20px。那岂不是说,在不同的屏幕上看到的效果不一致咯。先不急,我们接着往下看。

iPhone 6 Plus的缩放

iPhone 6 Plus的实际分辨率为1080 × 1920px,而不是1242 × 2208px。严格来说,iPhone 6 Plus的缩放因子为@2.6。所以,在最终显示到屏幕上还需要经过采样缩放。在iPhone 6 Plus上,实际显示像素为:

60px * 1080 / 1242 ≈ 52 px

到这里,iPhone 6和iPhone 6 Plus还是相差了12px。

但是,众所周知iPhone 6 Plus的PPI比iPhone 6的高。所以还需要考虑PPI的影响。

PPI的影响

iPhone 6的是326ppi,而iPhone 6 Plus为401ppi。什么意思呢?就是说,iPhone 6 Plus每英寸的长度显示的像素比iPhone 6多。所以,在视觉效果上,同样像素的控件,在iPhone 6 Plus看起来要更小一点。

如果将iPhone 6 Plus的52px,等比放在iPhone 6上,在视觉上还要再进一步的缩小。所以,iPhone 6 Plus的52px,换算成iPhone 6的视觉效果,大概为:

52px * 326 / 401 ≈ 42px

是的,这就是最终的效果,在视觉上还是有2px的差距。但是,这个差距在视觉上已经没什么差距了。

适配规则

下面来看一下iPhone适配的一些简单的规则。

留黑边

iPhone 4(S)之前,宽高比是1.5,iPhone 5之后,宽高比变成了1.77,到了iPhone X发布会,宽高比又进一步拉大变成2.10。可以想象成在原来的屏幕基础上长了一截出来。

如果要维持页面宽高比不变,则屏幕的上下部分会出现一个黑边。因为屏幕本身就是黑的,所以在视觉上并不会出现特别不适的情况。

QQ在iPhone X上的视频

虽然这种办法简单粗暴,但是却是比较高效简单的办法。事实上,在新的屏幕比例发布后,很多APP就是用这种临时方案来暂时进行适配的。

等比缩放

iPhone 5和iPhone 6/7/8 和 iPhone 6/7/8 Plus之间虽然屏幕尺寸变大了,但是,其比例都是16:9。

通过弹性放大的方式将其等比的放大来适应屏幕的变化。

网易新闻在不同屏幕下的显示

可以看到,不同的屏幕尺寸不一样,可是显示的内容却是一致的。

变大后的失真的问题

因为图标通常都是位图。所以不可以避免的,经过拉大后图标会出现失真的问题。

为此iPhone提供了一套解决方案。为不同分辨率的设备提供不同分辨率的图标。iPhone 3GS~iPhoneX有着三种不同的缩放因子,根据不同的缩放因子,我们需要提供三种分辨率的图标:@1x/@2x/@3x。

UI以icon.@1x.png/icon.@2x.png/icon.@3x.png为命名,程序自动根据不同的屏幕使用不同的icon图标。

适配基础规则

大屏幕带来了较大的显示空间。但是,无论是留黑边的方式,还是等比缩放的方式,在屏幕加大时并不能将更多的信息呈现给用户。白白浪费了大屏幕的优势。

我们来看看怎么解决这个问题。有三条比较基础的规则:文字流式(fluid),控件弹性(flexible),图片等比缩放(scale)。

文字流式(fluid)

屏幕变大时,保持文字大小不变,随着屏幕变大,横向拉宽文字的显示区域。

为什么要保持文字大小不变

字体不是越大越好的。通过测试,iPhone的字体大概在20px~36px时(排除某些特殊的设计),会得到比较良好的阅读体验。保持字体大小在一定范围内,就是为了保证阅读起来比较舒服。

控件弹性(flexible)

屏幕变大时,保持控件大小不变,随着屏幕的变大,横向调整控件的相对位置。

相比于将控件固定在某个位置上,这种布局能更好地保持控件在页面上的平衡。同时,也能保证屏幕变大的时候,控件不会因为被拉大而失真。

图片等比缩放(scale)

对于图片,屏幕变大时,没办法只拉伸横向的,这样会导致图片的比例失调。所以,对于图片,要保证等比放大。也就是说,在宽度跟随屏幕变大的时候,高度也等比地变大。

图片相对于图标来说,有更高的像素,所以拉大图片失真的效果并不明显。

举例

以下是网易云音乐在不同屏幕下的显示情况。可以看到,当屏幕加大了之后,页面可以显示更多的内容。

背景适配

如果涉及到背景图、启动图等,铺满整个画面的图片,需要额外的考虑。iPhone 5到iPhone 8 Plus屏幕的宽高比是一样的,所以直接拉伸图片就可以了。到了iPhone X,宽高比加大后,再继续拉伸就有可能失真了。

对于屏幕比例变化的情况,可以做如下考虑:

适配高度,宽度自动填充

等比放大图片后,如果高度较小,则宽度进行自动填充。特别要注意,最好填充的颜色接近于图片颜色。

适配宽度,高度度自动填充

等比放大图片后,如果宽度较小,则高度进行自动填充。同样的,要考虑填充颜色。

等比放大,超出部分不显示

等比放大后,超出的部分不显示。对于这种情况,要注意是否截取掉图片的有用内容。

写在最后

本文只是简单的探讨了iPhone适配的规则。现实中,还有很多的因素需要考虑。有时候,对于某些特殊的页面,可能还会根据不同的屏幕出不同的方案。


《iPhone屏幕分辨率和适配规则(基础篇)》
《iPhone屏幕分辨率和适配规则(规则篇)》
《iPhone屏幕分辨率和适配规则(实现篇)》

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 156,265评论 4 359
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,274评论 1 288
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 106,087评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,479评论 0 203
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,782评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,218评论 1 207
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,594评论 2 309
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,316评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 33,955评论 1 237
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,274评论 2 240
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,803评论 1 255
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,177评论 2 250
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,732评论 3 229
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,953评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,687评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,263评论 2 267
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,189评论 2 258

推荐阅读更多精彩内容