做交互设计时,按钮大小如何规范

做界面交互设计的时候,有个看似简单但依然容易引起撕逼的问题——按钮到底得做多大。无论是面对美术同学设计的各种精美小巧细如针尖的按钮,或是策划同学各种“加加加”的需求轰炸,还是老板“大大大”的呼喊,最终还是需要落地——按钮这玩意,多大才是大,多小才算小。这个时候,就需要一套设计规范和标准,但也要言之有理,让人心服口服地遵守。

本文就介绍一个简单快速的入门,让大家了解到按钮大小设计的逻辑,还有到底应该设多少大小的问题。

事先说明:本文介绍的每一节的课题,都是值得交互设计们深入研究的。本文从简单入手,讲究快速实用,摒弃容易混淆新人的长篇大论,但还是建议能查阅网上的相关资料,才能更加深入地了解这方面的知识,希望能帮助到大家。

1、菲茨定律(Fitts’s Law)

关于按钮到底做多大,有一个很牛逼的公式,称为菲茨定律:

其中:

MT=完成点击的时间,理论上来说越小越好

a、b 是变化参数,不知道有什么用

A = 起点到目标中心的距离,也就是手指移动到按钮的距离

W = 目标在运动轴线上的宽度,也就是按钮的大小

作为一个文科生对于任何数学公式都是拒绝的,有兴趣的同学可以百度详细研究。列出这个公式的目的是,让大家了解到,我们所谓的“按钮手感”,是由哪几个参数影响的。

不想研究这个公式的同学,可以直接看对这个公式的解读(翻译):

1)按钮越大,越容易被点中(这个有点像废话)。

2)尺寸小的按钮,只要增大微小一点,对可点击性就增加很多。

对第二点的理解就是,按钮做得太小是很可怜的,牺牲任何东西都不能牺牲按钮大小

3)随着按钮的增大,可点性增幅降低

同样,一味无脑地增大按钮尺寸,并不能带来体验感的同样幅度的提升,差不多就好。

4)按钮过大,不会显著增加精度,但会降低速度

按钮过大带来的好处会越来越小,而且会带来另外新的问题——想象一下:拿着一个硕大无比如同桌子一样大小的手柄,肯定不如正常尺寸的好。

本节get:菲茨定律是一个很牛逼的定律,想深入研究可以看知乎上的一篇文章(传送门: /p/25530956 )。

2、不要废话直接给结论吧

菲茨定律是原理,但最终结论是什么呢,到底要设置多大的按钮呢,有很多讲交互的书籍,有各种答案:

ISO标准:

标准尺寸——19mm*19mm(mm是尺寸单位,毫米)

最小尺寸——9.5mm

最低标准——6.4mm

按钮和按钮之间最小间距——3mm

iOS(苹果)标准:

1倍率设备——44*44dp(dp表示像素,根据苹果设备屏幕,换算下来约7mm)

安卓标准:

48dp(约为7.4mm)

微软标准:

115dp(约为9mm)

看了这么多标准,是不是有点懵?

实际上,目前没有一个统一的标准,没有人可以解释为什么9mm的按钮会比8mm的按钮好,熟悉微积分的同学应该知道,一个平滑的曲线是可以无限分割的,没有那个“好”与“不好”的明显边界。

不过,现在界面都要求精细化,按钮都偏向往小了做,所以9mm~15mm就已经算得上是大按钮了,6mm~9mm是普遍喜欢的区域。但做人要有底线,最好不要再低于6mm了,而且细小的按钮加上过密的排布和微小的间距,会更加加重“误触的灾难”。

另外补充一句,特别是游戏,一些重要的入口,是不在这个体系之内的。相信大家对于很多手游内一个硕大的“play”或“开始游戏”按钮的印象都不会陌生吧。

本节get:

大按钮9mm~15mm

小按钮6mm~9mm

请尽量保持在这两个标准内

3、什么是PPI

当有人说最合适的按钮是XX像素时,那么这个人不是外行就是太懒。在移动设备上,不谈设备直接说像素(px)应该是多少多少,都是没有意义的。

打开百度,查看PPI的解释——PPI是Pixels Per Inch缩写,pixels per inch所表示的是每英寸所拥有的像素(pixel)数目。简单的说,每个手机的PPI都不一样,所以你的手机的6毫米(mm),和我的手机的6毫米(mm),是不一样的,也就是对应的像素值(px)也是不一样的。

所以PPI没什么玄乎的,就是把第2节的毫米(mm)转成像素(px)的媒介,计算方法也很简单,像素=PPI*毫米值*0.03937就可以了,当然也可以弄个高大上的公式:

实际工作中,建议大家把一些主流的设备上的都列出来,等到要做的时候再算就会很繁琐,而且事先列出来有助于时刻遵守,做得多了也就不用再一一对着看了,自然而然就会有意识地去遵守,有点像“肌肉记忆”。

另外,大家也会接触到一个DPI的概念,这两个概念非常类似,甚至有一些地方都混为一谈。网上介绍DPI和PPI区分的文章很多,有兴趣的同学可以自行寻找学习,但是有一点个人的建议:如果你是做手机游戏和软件的界面设计的,可以只关注PPI,而无视DPI,不然大量的信息充斥进来,很容易混淆。

那么如何知道设备的PPI呢,很简单直接百度,或者自己也可以算,参考我这个公式:

通过计算发现iPhoneX和官方公布的数值略有差距,可能全面屏采用了一套不同的算法。

另外再最后啰嗦一句,其实很多项目,都是只有一个“设计分辨率”的,也就是GUI设计的时候,只是以一个分辨率作设计,其他分辨率只是进行适配,不太可能每个分辨率都单独进行一套设计。目前游戏主流的设计分辨率是1334*750(iPhone6),或是1920*1080(Plus设备)。

本节get:

根据设备的PPI,把物理大小(mm)转成像素(px),才有实际操作设计的意义。

4、不同的位置对大小的影响

由于移动设备的小巧,所以其持握方式也会对按钮大小有要求,一般来说,离设备边缘的按钮应该设的更大一些,离设备越中间的按钮就可以放宽要求。

另外,如果是竖屏模式的游戏或软件,甚至是可以支持单手操作的,最好在这个基础上增加1mm左右。具体原因是:

横屏操作,和屏幕接触的主要还是大拇指指面,而横屏下,接触屏幕的很有可能是拇指指腹,从接触面积上来说,几乎少了一半。设置过iPhone指纹解锁的人应该知道,录入手指正面的指纹后,系统还需要我们录入指腹的指纹,这也是考虑到单手手持手机下,手指和指纹屏的接触情况。

5、其他解决办法

当然,规范是死的,实际情况还会有很多不得不违反规范的做法,为了让设计效果和实际体验折中妥协,我们还可以采取下列方法:

只牺牲一个维度(宽或高),也能达到较好的点按效果:

不怕小按钮,就怕小按钮扎堆,如果是并排密集的按钮,最好能预留出间距,防止误触:

上面那个3mm,放置在iPhone 8 Plus上对应的像素就是47,对应其他的设备也可以用上文介绍的方法计算出来。

让按钮的触控区域和按钮的实际尺寸脱钩,这个就需要程序做支持了,这是最一劳永逸的做法,可以应对各种不同的情况,但要注意一点:触控区域代替了按钮,执行响应的任务,那么触控区域本身就应该代替按钮,执行遵守上文所说的一系列规范了。