如期而至,这是标签栏控件总结的第二。这一真掏空职业验,希望对的作所帮。
这一我们聊一聊标签栏中的关键元素——图标。
图标实存在于界面中的许多地方,但因为这一期要分析标签栏,我会借标签栏中较流的图标样式,总结一套图标制作与落地方法。这些方法在图标制作过程中都是相通的,大可举一反。
1. 图标样
图标具体样风格定义是常主观,网络上也流传着许多教程教大家如何设计五花八图标,所以在这里我不再赘述了。我主要来结下基础标签栏图标般有哪些样变化。
我调研了诸多的应用程序,发主流的 APP 标签栏样式变化,致分以下五种。其中占比多的「由线型转面型」。
调研的应用程序中,所使用到线性图标的应用程序,都将描粗细限制 1pt-2pt 之间。
2. 图标视觉大小
上期我们讲到,iOS 定义了套标签栏图标尺寸规范。
iOS 在这里所定义尺寸并不是图标文件最后输出尺寸,而是设计师作图时,针不图标形状参考尺寸,目是为了让图标视觉大小看上去致。
那么什么 iOS 会根据不同的图标形状给出不同的图标尺寸呢?因 50px×50px 的方形比 50px×50px 的圆形面积,所以方形的视觉小也会于圆形。了统一图标的视觉小,方形当的面积收缩处理。(矩形同理)
于我们看到许多平台都推出了图标辅网格规范 ¹。其实如果遵从「面积相」原理,理论所的图标网格都应该由下面这一套推理公式得出(以Material Design 标准图标网格例):
但实际况,不同平台的图标辅网格规范建议尺寸都一的差异。原因就于,虽然时候我们参考「面积相」原则对图标视觉尺寸行了规范,但项目落后发视觉可能还一些不协调,所以终设师还会凭借自己的主观判断再行微调。
记住:好的设计作是性的设计论与设计师本身感性的碰撞结果,二者缺一可。
3. 图标输尺寸
iOS 规定标签栏图标的输尺寸统一为 31pt×28pt;Material Design 规定标签栏图标的输尺寸统一为 24dp×24dp。
但我们现,在借助图标网决图标视大小的问题之,每一个不同形状的图标,尺寸其是不同的。为方便前端落地,我们在输出切图文件时,要持每一个图标文件的输出尺寸是相同的。该怎么办呢?
于是将一组图标都放置在一个比图标本身略大的相同尺寸容器中。而图标这个容器之间的空像素,正好也帮助规避了图标落地后,切图边缘像素可能被截断的现象发生,所以称这个域为「安全边距」。
对于安全边距的规定:Material Design 全规定图标的安全间距统一 2dp;iOS 则根据不同的图标使用景给出的不同的图标网格和图标安全间距 2。
标签栏的图标一为静图标和动图标种。
静态图标实现法相容易,可以与前端沟确定本项目交付标签栏图标文件是采用位图是矢量图。如是位图议交付 .png 格文件;如是矢量图议交付 .svg 格文件。
1. 位图图标
使用位图时请注意以下两:
不项目环境输出切图套数不
- 付 iOS 原生的标签栏图标切图需要 @1x/@2x/@3x 三种倍率的切图文件;
- 交付 Android 生的标签栏图标切图需要 @1.5x/@2x/@3x/@4x 四种倍率的切图文件(@0.75x 和 @1x 切图层别用于 ldpi 和 mdpi 辨率备,但这些备现在乎已退出市,所以可不考虑,但最终视项目真实需求确定。);
- 交付 web 项目切图需要试情况而定,般常用 @2x 切图,为 @2x 下适配 @1x、上适配 @3x,都不会生太大图片失真。有时候前端小哥会要求用到其他倍率切图,所以最终以具体需求而定。
请注:这所提的倍率全都是「绝对倍率」,这个概念非常关键。
「绝倍率」指是:以上所有倍率都是针 @1x 设计稿下输出倍率尺寸。而你使用 @2x 作图时,为了保证「绝倍率」不变,你切图输出倍率应该设为 @0.5x/@1x/@1.5x 。
如果 @2x下作图,却依然保持输出 @1x/@2x/@3x 的切图,那输出的文件尺寸终其实 @2x/@4x/@6x。
有一点绕的话,我们 Sketch 导位图切图为例:
如果你日使的是 Sketch,是 Sketch 原生导工具,那你的切图预设应该根据你的作图尺寸而定,见表:
如果你日使的是 PS, Cutterman 切图,那么 Cutterman 会自识别你当前的画,然后根据它的宽(横屏情况是)来设定它的基准分辨率。那么你在任何情况输 @1x/@2x/@3x 的切图,实都是「绝对倍率」,像 Sketch 当中一样换算。前是「设置当前画布为:Auto(自识别)」。
假设你在 @2x 作图,执意管顾「绝对倍率」,又忘了交代前端人员手处切图尺寸的话,那你有的切图尺寸实际都是设计稿需图标尺寸的2倍。就算前端小哥帮你手处了切图尺寸,每一张切图包含的像素信息,都项目真实需的要多很多,全就是在徒增需切图件的大小。
注意切图件大小
切记,公司的线上项目中,户从务器载的每一单位的流量都是要公司钱的,许多项目管者都是很在意控制线上件大小的。于是压缩切图是 UI 必备的技能之一。
虽然图标的件大小一般只有几 KB,但是项目大了难免积成多,在真实项目中,管任何切图我都会手压缩一次。
里推荐一个压缩 .png 文件大小,但几乎不产生失的免费网站 tinypng³(是我曾经深爱的一位前端小哥推荐给我的,在此表示感谢)。
用好这个在线图片压缩神器TinyPNG !能帮你的老板省钱
这篇文章仔细看,聪明的不会底涨薪的机会! 今天推荐的站点对于很多设老手已不陌了, 鼎鼎的Tinypng, 再次推荐给刚入行的新人朋友们, 特别程序或者端打交道设师们, 如果们公司宽、图片CDN吃紧,就替老板看这篇文章了。
阅读文章 >>
2. 矢量图
位图切图会面临交付的倍率图过多、容易失真、文件大难控制等问题,但对于矢量图,这些问题都得了解决。目前.svg矢量图落地也在项目中越来越流行了。UI 可以在 Sketch 或 Ai 中制作。
般与前端员接有在线图标库接与本地文件接两。
线矢图标库很多,内比较流行的阿里巴巴矢图标库-iconfont⁴;本对接就直接将文件发送给端人员,他们会自行行项目文件的理与调用。
如果 .svg 切图输后,与设计稿中样式符,请注意查点:
svg 不支持渐变颜填充;
- svg 支持描边,请将有的描边轮廓。Sketch 中可通过「图层-轮廓」;AI 中可通过「对象-路径-轮廓描边」;
- 要确一组图标的文件尺寸一致,需在图标下方增加一个透明方形,和图标一同导出。
为了提升用户体验和品趣味性,动效微交互标签栏图标也越来越流了。
动效在前端落地法其实有很多:
- 前端代码直实现:代码是大的,但通常用代码直写复杂动效会浪费项目间。简维度的动效如位移、透度、大变化等可以借助代码,但复杂动效就不要去扰前端哥了;
- 接刚 gif:这已经是旧技术时代动画解决案了,文件大请求文件也需要时,有时候法用户及时触控反馈。再者它是位图原,在高分辨率屏幕上缩放容易失真。
- png 序列帧:我们知道,动画一张一张的静态图交替变化形的。如果将每一帧动画都拆分一张图片,就了 png 序列帧。所以一套动画的 png 序列帧往往非常多,文件小自然就变了。所以后也团队引了雪碧图的方式,但文件小依然不乐观。并且同样图的原因,高分辨率屏幕易失真。
- Facebook Pop/Rebound/Keyframes/Facebook Pop/Rebound 是 Facebook 给 iOS 和 Android 供的画预设,是较早将效代码的开源技术方案,但画效果预设只有弹簧/衰减等一些简单样式。后来 Facebook 又推了 Keyframes,允许设计师自己在 Ae 中自定义画并导,然后交付给前端人员。
- Lottie 动画:和 Facebook Keyframes 相同,是结合 Ae 输出动画代码。但是 Lottie 更厉害的地方在,它比 Facebook Keyframes 来支持的 Ae 样式更,例蒙版、遮罩、修剪路径等等。
综上述,落地标签栏态图标,目前最效可行的还是 Lottie 画。
比阿里犸良还强大!Lottie动效设计完全指南
前文章已经介绍了 Lottie 是什么,以及如何导入设计文件,那么今天为大家讲解如何根据我们需要导出 Lottie 文件。 往期回顾: 《比里犸良强大!
阅读文章 >>
1. Lottie的背景
Lottie 是 Airbnb 开源的一个跨动画库。表现层面它是一张图片,但实现的方式是通过代码,所以它是矢量的。花式的动画也可以把文件大做非常。
UI 与前端接是过交付个 json 代码文件。
如果这第一次接触 Lottie,再好不过的体验方法就玩一玩阿里提供的一站式动画平台:犸良动画 5。它底层采用的技就 Lottie,只被阿里二次封装了许多预设的动画效果,可以自义其中的元素与参数,然后试导出的第一 json 文件。
2. Lottie如何上手
接下简单粗暴的 UI 与端对接实 Lottie 动画落的全骤参考。此之,全方了解 Lottie 的相关信息,请参阅 Lottie 官方明文档 6。
骤一:安装 Ae bodymovin
制作 Lottie 动画,首先必需两具:Ae bodymovin 插件。
Ae 最低版本要求为 Ae CC2014。又因为据很多设计师反馈,目前 bodymovin 在汉后的 Ae 中使会现诸多问题,后面的程都是基于 Ae 英版。如果你汉了Ae,最好在需要制作 Lottie 画时取消汉。
获取 bodymovin7。bodymovin 插件更新至今,版已非常,并不一定最新版就适用你当前的项目,因为前端使用的 bodymovin 析包能无法析你用最新版 bodymovin 插件输出的 json 文件。
一旦确定使用 Lottie,前端人在 GitHub 查询 Lottie 相关文档的,所以 UI 只需要合前端确定一下合适的 bodymovin 插件版就以。最终走查时,一定要确当前 bodymovin 输出的动画在项目所需要运行的所有境中运行,才说明 UI 使用的 bodymovin 插件和前端使用的 bodymovin 析包版是兼容的。
获取了 bodymovin 后,将 bodymovin 拖入 ZXP Installer8 中,ZXP Installer 会动识别插件安装 Ae。
安装完成后,就可以在 AE 的「窗-扩展」中 bodymovin 。
步骤二:将 Sketch 或 Ai 中的文件导 Ae
果你技术娴熟,当也以直接在 Ae 中绘图案动画。但果你还是习惯先在其他软件中绘基础图案,到 Ae 中动画,你需要何将图案导 Ae。
Ai 和 Ae 都是 Adobe 旗下的工,所以 Ae 是可以完美解析 .ai 文件的,如果你是使用 Ai 作图,可直存储为 .ai 文件,再在 Ae 中开。
如果你使用的是 Sketch,可以先导出为 .svg,再用 Ai 开该 .svg 文件,转换存储格式为 .ai,最后 Ae 中开。
然,Sketch 有接和 Ae 接插件,AEUX(前身 Sketch2AE)9。需要在 Sketch 和 Ae 时安装 AEUX 插件,Sketch 负责传送,Ae 负责接收。具体使用法可以在官网教程查看,我不再赘述了。
步骤三:制作动效并输出
和静图标同理,为了保证落地图标视觉大一致,一组动效图标输出的文件尺寸应该是相同的。所以在你制作动画之前需要确定成文件的尺寸。Lottie 官方建议:因为 Lottie 输出的是矢量动画,所以建议以 @1x 输出动效,前端人员在任何屏幕上放大并不会失真。
在制作之前请必详细阅读 Lottie 所支持的 Ae 参数文档10,以免辛苦做出的动效,前端无法解析。别提醒:生环中 bodymovin 是不支持解析 Ae 表达式的。
完成制作动效后,可以过 bodymovin 导出动效了。
步骤四:预览交付
导出完成后在你的目的地文件夹中将存在一个 .json 文档,如果你的动效中还使用了位图,系统还会动生成一个 images 文件夹。这些都是你需要交付给你对的前端开发人员的文件。
.json 文件中记录的动效代码 UI 不需要过多关心,但是其中个息你是一定要了解的。它是你前端对沟通和获悉文件息的一些关键参数。
UI 检动效或其相关人员需要预览动效的候,可以用 LottieFiles11,拖入 .json 文件即可预览。iOS 和 Android 还可以下载 LottieFiles APP,扫描预览页中的二维码即可在移动端预览。
整个图标的流程我已经部整理出来。首先要注意图标的规范,位图、矢量、动效图标时的注意点,我几乎把我在项目中踩的坑告诉大家。剩下的创造的节就给你。
所有在文中涉及的文档地址和插件下载链:https://pan.baidu.com/s/1xJGXB14dOm32PAJxu_4_0g 提取码: sfpj
备用下载链接:https://share.weiyun.com/5wBV1Nt
欢迎家关注作者微信公众:「UCD耍家」