分享移动端尺寸基础知识 什么是移动端设计尺寸?( 二 )

  • 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 6)
    • 4倍:1pt=1dp=4px(xxxhdpi)
    单位决定了我们的思考方式 。 在设计和开发过程中,应该尽量使用逻辑像素尺寸来思考界面 。 设计Android应用时,有的设计师喜欢把画布设为1080x1920,有的喜欢设成720x1280 。 给出的界面元素尺寸就不统一了 。 Android的最小点击区域尺寸是48x48dp,这就意味着在xhdpi的设备上,按钮尺寸至少是96x96px 。 而在xxhdpi设备上,则是144x144px 。
    无论画布设成多大,我们设计的是基准倍率的界面样式,而且开发人员需要的单位都是逻辑像素 。 所以为了保证准确高效的沟通,双方都需要以逻辑像素尺寸来描述和理解界面,无论是在标注图还是在日常沟通中 。 不要再说“底部标签栏的高度是96像素,我是按照xhdpi做的”这样的话了 。
    Web怎么办
    移动端页面的绝对单位仍然是px,至少代码里这么写,但它的道理也和app一样 。 由于像素密度是设备本身的固有属性,它会影响到设备中的所有应用,包括浏览器 。 前端技术可以善加利用设备的像素密度,只需一行代码,浏览器便会使用app的显示方式来渲染页面 。 根据像素密度,按相应倍率缩放 。
    可以通过这个测试页面 http://greenzorro.github.io/demo/basic/响应式断点.html 来看看你的移动设备屏幕宽度,这是逻辑像素宽度 。
    以iPhone 5s为例,屏幕的分辨率是640x1136,倍率是2 。 浏览器会认为屏幕的分辨率是320x568,仍然是基准倍率的尺寸 。 所以在制作页面时,只需要按照基准倍率来就行了 。 无论什么样的屏幕,倍率是多少,都按逻辑像素尺寸来设计和开发页面 。 只不过在准备资源图的时候,需要准备2倍大小的图,通过代码把它缩成1倍大小显示,才能保证清晰 。
    实际应用
    大家最关心的还是实际运用,画布该怎么设置 。 我们就iOS、Android、Web三个平台来分别梳理一下 。 不过在这之前,我要为使用PS进行设计的朋友介绍一个小技巧 。

    分享移动端尺寸基础知识 什么是移动端设计尺寸?

    文章插图
    之前我说过,我们要以逻辑像素尺寸来思考界面 。 体现到设计过程中,就是要把单位设置成逻辑像素 。 打开PS的首选项——单位与标尺界面,把尺寸和文字单位都改成点(Point) 。 这里的点也就是pt,无论设计iOS、Android还是Web应用,单位都用它 。 当然,各平台单位名称还是要记住的 。 这里我们用的只是它的原理,不用在意名称 。
    要调节倍率,则通过图像大小里的DPI来控制 。 这个DPI,其实就是PPI,像素密度 。 有个常识大家都知道,屏幕上的设计DPI设成72,印刷品设计DPI设成300 。 为什么是这两个数字?
    首先说300,这和人眼的分辨能力有关 。 由于1英寸是固定长度,每1英寸有多少个像素点决定了画质清晰程度 。 之前说过,这就是像素密度,也就是DPI 。 DPI达到300以上,其细腻程度就会给人真实感,像真实世界中的物件 。 相反,DPI只有10的话,在你一个食指指节大小的长度内只有10个像素,这明显就是马赛克了 。 所以印刷品要设成300,才能保证清晰 。
    再说72,这有一定的历史原因 。 最早的图形设计是在mac电脑上进行的,mac本身的显示器分辨率就是72 。 PS中把图像DPI也设成72,就能保证屏幕上显示的尺寸和打印尺寸相同,便于设计 。 72的PC显示器分辨率逐渐成为一种默认的行业标准,这套规则就这么沿用下来 。

    推荐阅读