移动端尺寸问题

  

  移动端尺寸的现状

  首先说现象,大家都知道移动端设备屏幕尺寸非常多,碎片化严重。尤其是Android,你会听到很多种

  分辨率:480x800, 480x854, 540x960, 720x1280, 1080x1920,而且还有传说中的2K屏。近年

  来iPhone的碎片化也加剧了:640x960, 640x1136, 750x1334, 1242x2208

  

  不要被这些尺寸吓倒,实际上大部分的app和移动端网页,在各种尺寸的屏幕上都能正常显示。说明尺

  寸的问题一定有解决方法,而且有规律可循

 

  像素密度(PPI)

  要知道,屏幕是由很多像素点组成的。之前提到那么多种分辨率,虽然说是分辨率,但和图片的分辨率

  不是一回事,实际上都是手机屏幕的实际像素尺寸。比如480x800的屏幕,就是由800行、480列的像

  素点组成的。每个点发出不同颜色的光,构成我们所看到的画面。之所以大家都称为手机屏幕的分辨率,

  也是一个默认的错误而已

 

  而手机屏幕的物理尺寸,和像素尺寸是不成比例的。最典型的例子,iPhone 3gs的屏幕像素是320x480

  iPhone 4s的屏幕像素是640x960。刚好两倍,然而两款手机都是3.5英寸的。

 

  所以,我们要引入最重要的一个概念:像素密度,也就是PPI(pixels per inch)。这项指标是连接数字世

  界与物理世界的桥梁。Pixels per inch,准确的说是每英寸的长度上排列的像素点数量。1英寸是一个固

  定长度,等于2.54厘米。像素密度越高,代表屏幕显示效果越精细。Retina屏比普通屏清晰很多,就是

  因为它的像素密度翻了一倍。可以看出,实际上PPI和平时所说的图片的分辨率才是相近的

 

  引发的问题

  接下来考虑这样一个问题,有如下两种机型

  iPhone 3gs : 320x480

  iPhone  4s  : 640x960

  如果我们有一张 320x480 px 大小的图片,要在两种手机中都满屏显示,结果会怎么样呢?

 

  可以肯定的是,在 iPhone 3gs 上这张图能够正好的清晰的显示,物理器件上的一个物理像素光源点,正

  好用来显示图片上的一个像素

 

  而另一方面,对于 iPhone  4s ,如果满屏显示的话,那么实际上是物理器件上的640x960个物理像素光

  源点来显示 320x480 个图片像素;这意味着,4个物理像素光源点要用来显示一个图片像素,那么整体效

  果是图片被拉伸,肯定会模糊

  

   倍率和逻辑尺寸

    在以前,iOS应用的资源图片中,同一张图通常有两个尺寸。你会看到文件名有的带@2x字样,有的不带。

    其中不带@2x的用在普通屏上,带@2x的用在Retina屏上。只要图片准备好,iOS会自己判断用哪张,

  Android道理也一样。

  

  由此可以看出,苹果以普通屏为基准,给Retina屏定义了一个2倍的倍率(iPhone 6plus除外,它达到了3倍)。

  实际像素除以倍率,就得到逻辑像素尺寸。只要两个屏幕逻辑像素相同,它们的显示效果就是相同的。

 

  

  Android的解决方法类似,但更复杂一些。因为Android屏幕尺寸实在太多,分辨率高低跨度非常大,不像苹果

  只有那么几款固定设备、固定尺寸。所以Android把各种设备的像素密度划成了好几个范围区间,给不同范围的

  设备定义了不同的倍率,来保证显示效果相近。像素密度概念虽然重要,但用不着我们自己算,iOS与Android

  都帮我们算好了。

 

  如图所示,像素密度在120左右的屏幕归为ldpi,160左右的归为mdpi,以此类推。这样,所有的Android屏幕

  都找到了自己的位置,并赋予了相应的倍率:

  ldpi [0.75倍]

  mdpi [1倍]

  hdpi [1.5倍]

  xhdpi [2倍]

  xxhdpi [3倍]

  xxxhdpi [4倍]

  

 

  

  就目前市场状况而言,各种手机的分辨率可以这样粗略判断。虽然不全面,但至少在1年内都还有一定的参考意义:

  ldpi 如今已绝迹,不用考虑

  mdpi [320x480](市场份额不足5%,新手机不会有这种倍率,屏幕通常都特别小)

  hdpi [480x800、480x854、540x960](早年的低端机,屏幕在3.5英寸档位;如今的低端机,屏幕在4.7-5.0英寸档位)

  xhdpi [720x1280](早年的中端机,屏幕在4.7-5.0英寸档位;如今的中低端机,屏幕在5.0-5.5英寸档位)

  xxhdpi [1080x1920](早年的高端机,如今的中高端机,屏幕通常都在5.0英寸以上)

  xxxhdpi [1440x2560](极少数2K屏手机,比如Google Nexus 6)

 

  自然地,以1倍的mdpi作为基准。像素密度更高或者更低的设备,只需乘以相应的倍率,就能得到与基准倍率近似的显示效果。

  不过需要注意的是,Android设备的逻辑像素尺寸并不统一。比如两种常见的屏幕480x800和1080x1920,它们分别属于

  hdpi和xxhdpi。除以各自倍率1.5倍和3倍,得到逻辑像素为320x533和360x640。很显然,后者更宽更高,能显示更多内容。

  所以,即使有倍率的存在,各种Android设备的显示效果仍然无法做到完全一致。

 

  单位

  不难发现,真正决定显示效果的,是逻辑像素尺寸。为此,iOS和Android平台都定义了各自的逻辑像素单位。iOS的尺寸单位

  为pt,Android的尺寸单位为dp。说实话,两者其实是一回事。

  单位之间的换算关系随倍率变化:

  1倍:1pt=1dp=1px(mdpi、iPhone 3gs)

  1.5倍:1pt=1dp=1.5px(hdpi)

  2倍:1pt=1dp=2px(xhdpi、iPhone 4s/5/6)

  3倍:1pt=1dp=3px(xxhdpi、iPhone 6s)

  4倍:1pt=1dp=4px(xxxhdpi)

 

  单位决定了我们的思考方式。在设计和开发过程中,应该尽量使用逻辑像素尺寸来思考界面。设计Android应用时,有的设计师

  喜欢把画布设为1080x1920,有的喜欢设成720x1280。给出的界面元素尺寸就不统一了。所以为了消除"底部标签栏的高度是

  96像素,我是按照xhdpi做的"这样别扭的话,我们应该遵循下面的原则

 

  无论画布设成多大,我们设计的是基准倍率的界面样式,而且开发人员需要的单位都是逻辑像素。所以为了保证准确高效的沟通,

  双方都需要以逻辑像素尺寸来描述和理解界面,无论是在标注图还是在日常沟通中。不要再说“底部标签栏的高度是96像素,我

  是按照xhdpi做的”这样的话了。

 

  无论什么样的屏幕,倍率是多少,都按逻辑像素尺寸来设计和开发页面。只不过在准备资源图的时候,需要准备2倍大小的图,通

  过代码把它缩成1倍大小显示,才能保证清晰。

 

  但是,就像上面的说的一样,有的设计师喜欢将画布设置成750,有的设置成1080的,那么在PS中怎样才能够方便的将尺寸单位

  转换为逻辑像素,也就是 点 呢?实际上非常的简单,PS中已经为我们提供了特别简单的转换方式,不用你再除2、除3,自己算了

  方法如下

 

  实际应用

  在用PS进行设计的时候,画布大小随意设置,可以是360/720/1080,单位还是用像素,该怎么做还是怎么做,做完之后就要进

  行尺寸标注和切图了,这个时候,我们可以将画布的尺寸和文字单位都改成 点(Point) 也就是pt

 

  

 

  之后我们打开 图像大小 窗口,更改分辨率,窗口中的 分辨率 虽然叫分辨率,实际上这个就是 设备像素密度 DPI,或者PPI

  只不过沿用了分辨率这个叫法,可以看到默认值是 72 ,这个就是1倍率的像素密度了,至于为什么是72,这个是有历史原因

  的,最早的图形设计是在mac电脑上进行的,mac本身的显示器分辨率就是72。PS中把图像DPI也设成72,就能保证屏幕上

  显示的尺寸和打印尺寸相同,便于设计。72的PC显示器分辨率逐渐成为一种默认的行业标准,这套规则就这么沿用下来。

  

  所以,如果你的画布大小是 720 的话,那么就将 DPI 设为 144 ,如果是1080的话,就将 DPI 设为 216;设定完成之后,

  回到设计的图像页面,会发现标尺的单位是 点,画布大小变成了逻辑尺寸 360 ,说明PS已经自动除了相应的倍率,转换成

  了逻辑尺寸,单位是 pt 。这个时候你就直接在PS中查看各个位置的尺寸,进行标注就行了,非常的简单。

 

  

 

  下面来看看3个平台各自的画布设置:

 

  iPhone

  iPhone的屏幕尺寸各不相同,我说的是逻辑像素尺寸,这确实是让人很头疼的事情。如果想用一套设计涵盖所有iPhone,就

  要选择逻辑像素折中的机型。从市场占有率数据来看,目前最多的是iPhone5/5s的屏幕。倍率为2,逻辑像素320x568。上

  升势头最猛,未来有望登上第一的是iPhone 6的屏幕。倍率为2,逻辑像素375x667。

 

  按照这两种尺寸来设计,都是比较主流的做法。可以兼顾短一些的iPhone 4s,大一点的6 plus也不会过于空旷。

  不过在切图的时候要注意,由于iPhone 6 plus的3倍图是由2倍图放大而来,所以位图要注意保证清晰。

 

  Android

  都说Android碎片化严重,但它现在反而比iOS好处理。因为如今的Android屏幕逻辑像素已经趋于统一了:360x640,

  就看你设成几倍了。想以xhdpi为准,就把DPI设成72x2=144。想以xxhdpi为准,就把DPI设成72x3=216。

    其他的机型不出一年就会被边缘化,基本淘汰。现在能运转的也是当作功能机在用,软件多了必卡无疑,用户体验无从

  谈起,不作考虑也是OK的。

 

  Web

  手机端网页就没有统一标准了,比较流行的做法是按照iPhone 5的尺寸来设计。倍率2,逻辑像素320x568。

  这样的做法比较实在,倍率2的屏幕无论在iOS还是Android方面都是主流,而且又是2倍屏幕中逻辑像素最小的。所以图

  片的尺寸可以保持在较小的水平,页面加载速度快。当然,缺点就是在倍率3的设备上看,图片不是特别清晰。

 

  如果追求图片质量,愿意牺牲加载速度,那么可以按照最大的屏幕来设计。也就是iPhone 6 plus的尺寸,倍率3,逻辑像

  素414x736。

 

  总结

  移动端的尺寸比PC端复杂,关键就在倍率。但也正因为倍率的存在,把大大小小的屏幕拉回到同一水平线,得以保证一套

  设计适应各种屏幕。站在这条水平线的角度看,会发现它很好理解。

 

  由于最近在研究交互设计,就顺便将Pixate中的设备信息贴出来

  

 

posted @ 2015-11-28 22:02  RoperLee  阅读(689)  评论(0编辑  收藏  举报