使用 Sketch 和 Pixate 构建 Material Design 原型 - 第三部分

本文讲的是使用 Sketch 和 Pixate 构建 Material Design 原型 - 第三部分,


在本系列的 Part 2 我们已经将在 Sketch 中完成的作品导入到了 Pixate ,并且新建了一个简单的登陆原型。

最后在这个总结性的第三部分,我们将进一步深入,同时将会作出一个更细致的原型。 开始之前,你应该已经完成了 Part 1 andPart 2 , 如果没有的话,先去看看这两篇内容吧.

我已经上传了你在 Part 3 里所有需要的 Sketch 资源 , 你要做的就是将它们导出来。记住,一定要按照 3x 方式导出,这样在手机上显示效果不错。 随意按照你喜欢的方式去修改它们,只要尽力保证大小相同,这样在这次教程中所用到的尺寸才能是正确的。

让我们 drawer 点灵感

首先,往我们的原型加入一个 navigation drawer 。 navigation drawer 是如今常见的设计样式,虽然某些时候开发者在利用它的时候会出现一些错误,但是它依旧被广泛的使用。

通过点一下显示在菜单层的眼睛来隐藏登陆界面。新建一个新的画布,取名为“ Navigation Drawer ”。就像在 Sketch 里一样的尺寸 340x640。与登陆界面有 36 像素的 padding 值。这样我们才可以将 drawer 滑出。Navigation Drawer 会占据 Login Screen 左边页面空间,所以我们才可以将它滑出和滑进。Navigation Drawer 画布的 X 轴应该是 -304。这样才能保证我们操作的区域可以被滑动。当然,一定改变这个画布的 “ Appearance ” 为透明的或者让_Navigation Drawer_ 的右端有一个灰色横条。最后,将 " Nav Drawer with 36dp drag area " 图片导入这个画布。

现在有 drawer 在面板上了,我们可以加上 “Drag” 交互,让它可以被滑动或者拖动。点击并且拖出 “Drag” 交互作用在Navigation Drawer 画布(译者注:联想下 Android Studio XML 那里的 Design 拖拽添加布局),你会看到“ Drag ” 在右侧菜单的 “ Interactions ” 属性里。

现在让我们配置一下“ Drag ”交互。我们仅仅想要 Navigation Drawer 水平移动,所以我们得在“ Move w/Drag ”菜单选择“ Horizontal ”,然后我们再设置一个 Navigation Drawer 向右移动的最大值。如果我们不这样做,就可以将 drawer 一直拖出屏幕。在第一个参考建议里,我们应该确保已经选择了 “ Left ” 并且输入了 “-304” 在 “ Min position ” 输入框里。这样才可以保证 drawer 不会移到屏幕我们无法拖动的位置。第二个参考建议里,首先选择 " Right " 然后输入 "340" 到 " Max Position "。当我们拖动的时候,Navigation Drawer 的 X 轴达到 340 时就会停住。如果以上都做好了,你应该会看到这样的画面:

画出来

我们将会加更多的特性给 Navigation Drawer 。它会自动的离开屏幕,意味着我不需要一直拖着它到左侧。


我们需要一个 “ Move ” 动画,将它拖拽放到 Navigation Drawer 上。我们再给这个交互取个名字,让我们更清晰地知道这个是做什么的。取个 “ Put back in place ”。这个 “ Move ” 需要在 Navigation Drawer “ Drag Release ”基础上。当用户停止拖拽的时候,就会触发该动作。我们的动画得设置为 “ With duration to final value ”。现在看看我们的 “ IF ”条件,如果 drawer 小于 340 我们就希望 drawer 开始动画移出屏幕。接下来,我们需要设置好在哪里我们希望 drawer 开始 “ Move ” 动画。选择 “ Left ” 然后在参数输入框里输入 "-304"。最后,为 “ Easing Curve ” 选择 " ease out " 并且选择默认类型为 “ quadratic ”,这会让我们的 drawer 移动更加自然。

好,让我们来测试一下。

当我们往右拖 drawer ,最终会留出一定距离(之前设置的 padding),当我们往左拖一点点就可以让它移除屏幕。使它像一个真实的 navigation drawer 你还有很多可以做的,你就下去自己实践吧。

首页

好,让我们来创建 Home Screen ,它包含了两个 tabs,Versions 和 In WordsVersions 页里有一个可滑动的列表页,In Words页里会有一个关于甜点的文章。

首要任务先从 Sketch 中导出 Home Screen 的资源,同样需要 3x 格式。如果你没有的话,你需要这些:

  • app and status bar
  • versions tab selected
  • in words tab selected
  • tab indicator
  • Version List
  • In Words Content

回到 Pixate 然后导入这些资源。

现在我们需要新建一个画布,命名为 “ Home Screen ”,将它的大小改成与 Login Screen 一样,360x640。确保新的画布包含整个 Login Screen 画布,不然待会出现问题。

现在我们新建一个名为“ App and Status Bar ”的画布,这个为 Home Screen 画布的一部分,添加“ app and status bar “ 从 Sketch 导出的图片作为 properties menu ,设置它的尺寸为 360x136 并且与顶部对齐。为什么作为 Sketch 文件高度是 136 而不是 128?现在我们需要对 Sketch 缺少的阴影做点解释,将颜色设置为透明,这样我可以避开任何背景,将灰色阴影渗出。然后你会得到一个这样的: 

加入 Tab

现在我们得到了 tabs ,并且实现了在它们之间切换的功能。

我们需要两个画布,尺寸都是180x48,一个取名为“ Versions Tab Selected ” ,另一个为“ Background Tab Selected ”。确保它们都是 Home Screen 画布的子集。Versions Tab Selected 放在 (0,80) 的位置,Background Selected Tab 放在 (180,80)。

我们忘记了一件事情,tab 的焦点。新建一个画布,取名为 “ Tab Indicator ” ,尺寸设为 180x2 并且保证是_Home Screen_的子集,Home Screen 这层应该是所有层的最外层,在 Versions Tab 和 Background Tab 之上。这样它才可以在顶部绘制,我们才可以看到它。然后你需要导入“ tab indicator ” 图片,放在(126,0)位置。 

焦点的动画

好,现在我们设置好了像一个真实 app tabs 运作需要的里所有部件。现在我们想做的事是当点击 tab 后,焦点能够移动到对应的 tab 下。现在我们从 Background Tab 开始。

给 Background Tab 添加一个 “ Tap ” 交互,我们将会基于这个 “ Tap ” 交互配置 Tab Indicator ,为 Tab Indicator 添加 “ Move ” 动画,命名为“ Move on Background tap ”,这样可以让我们清楚这个是做什么,在“ Based On ”下拉框里选择“ Background Tab ”,下面的“ Move To ”设置里,我们选择为“ Right ”并且输入参数 “360”,这个会移动 Background Tab 下的焦点。接下来,为了让 tab 的运动更加自然,我们在 “ Easing Curve ” 设置里选择“ ease out ”,离开设置为“ quadratic ”。最后的一件事情,我们需要更改“ Duration ” 的参数为 “0.1”,像一个真实的 tab 焦点一样移动快速。这里就是你需要设置成的样子:

这样设置后,我们会看到:

现在我们需要为 Versions Tab 被点击后让 Tab Indicator 移动回去。只需要用 Versions Tab 重复之前的过程。这个将留给你们作为练习,一定要记住,给 Versions Tab 添加 “ Tap ” 交互效果,否则你将看不到“ Based On ”的下拉选择框。完成后,你将会得到一个响应你每次点击 tab 的 tab 焦点。

看我上下滚动

现在让我继续添加一个可滚动的列表给我的 app。我们已经得到了导出的 “ Version List ” 资源,所以让我们马上开始吧。

新建一个“ Version List ”画布,放在 Home Screen 画布下,尺寸设置为 360x1232。这会导致它比屏幕要长,但是别担心这个, Pixate 会帮我们解决。将 Version List 放在 toolbar 下面, 滑出内容会被 toolbar 遮盖。 

现在我们赋予 list 滚动的能力。你可能会想我们只需要给 Version List 添加一个“ Scroll ” 交互就可以了,但是我们其实要做的事情是去指定一个可以滚动的区域。

首先让我简单的隐藏 Version List,先新建一个画布 “ Scroll ” 处于 Home Screen 画布下。该画布从 app bar 和 tabs 下开始并且充满直到底部。它的尺寸为 360x512,x=0,y=128。你将会看到屏幕上有一个灰色的框,现在将 Version List 放进 Scroll Content 画布里。还原 Version List 回到之前的样子。现在如果你运行这个原型,你可以上下滚动 Version List 。

切换 Tabs

到目前为止,我们已经得到一个功能上还行的原型,但是我们还忘了给 tabs 添加切换能力。现在我们来做。

我们在 Home Screen 画布下新建一个“ In Words ”画布,将它放在 Home Screen 的右边并且设置尺寸为360x512。将“ In Words Content ”图片添加进当前画布,然后你会得到:

我们现在需要新建一个画布作为我们的 ViewPager。它可以通过一个简单的滑动像一个真实 app 一样,从屏幕边缘实现一个 tab 移动到 另一个 tab。该画布应该是在整个画布系统中的最底端。它同样需要被 In Words 和 Scroll Content 添加,这样它才知道哪些内容是可以被移动的。 

给 View Pager 画布添加“ Scroll ”交互,这“ Scroll ”菜单中有一个“ Paging Mode ”属性,确保你在下拉框中选择了“ paging ”。如果这些都是设置好了,现在就可以滑动屏幕啦!

滑动中移动 tab 焦点

我们忘记了一件事情,我们还需要在滑动屏幕时,同时移动 tab 焦点,这样才能完成 Home Screen 。

给 Tab Indicator 添加 “ Move ” 动画,取名为” Move on Swipe Left “。按照下面图片进行设置:

好,我们将该运动建立在当前 View Pager 下的 tab上,并且当滚动停止的时候,我们才活动。在我们的“ IF ” 部分我们会检测如果我们已经与开始的 X 轴坐标移动了 360 ,这样我们会切换到浏览下一个 tab。当生效后,我们希望往左移动到 180 ,将焦点放在 In Words tab 下。接下来,为了像之前一样得到一个自然的运动,我们会改变“ Easing Curve ” 为“ ease out ”。最后,我们将改变 duration 为 0.1,尽可能地让 tab 快速移动。

现在如果你滑动屏幕,tab 也会跟着移动了。

现在你需要做的就是颠倒下这个过程,当你右滑时,tab 返回。这个会留给你们进行练习,我会给你们 "IF" 条件的提示:

    view_pager.contentX == 0

当你搞定了后,你的 Tab Indicator 应该跟随着你滑动。

Finishing Touches

现在我们来给 Login Screen 切换到 Home Screen 提供一个透明切换效果。你应该把它放在 Home Screen 画布的上方,使 Login Screen 在 Pixate 中可见。

当用户摁下登陆按钮时,我们添加一个简单的 scale 动画。为 Login Screen 画布添加一个 “ Scale ” 动画,确保它作用于整个Login Screen 画布,并不是某个部分。按照以下要求设置动画: 

只有当用户已经完成了两个输入框的操作后,点击登陆按钮才会触发这个动画。我们通过因素和相连的X和Y进行缩放(因为我们想要均匀的缩放效果)。我们设置 “ Scale ” 到“0x”,意味着 Login Screen 将会消失,然后我们设置“ ease out ” 和 “ Duration ” “0.3”,防止动画执行过快。

现在我们可以看到:

最后,确保 Navigation Drawer 不能在 Login Screen 页面被滑出。我们需要这样设置: 

在 Navigation Drawer 的 “ Properties ”菜单减少它的“ Opacity ” 到 “0%”。这样将不会在 Login Screen 被滑出了。接下来,给Navigation Drawer 画布添加一个 “ Fade ” 动画,就像之前给 Login Screen 设置的缩放动画一样,我们想要这个 fade 动画同样在摁下登陆按钮后触发,同时设置为100%,这样才可以完整的看到 Navigation Drawer。我们延后0.3秒执行这个动画,这样Login Screen 可以完整执行缩放动画。

最后一步!如果之前所有都没有问题,你将可以展示一个简易的 material design 的原型 app。 

最后

我希望你喜欢这个教程系列,你还可以在 Sketch 和 Pixate 上做很多事情来提示你的水平。如果你真的特别喜欢使用这些工具,我特别希望你可以去找更多的关于它们的教程。你可以做以下事情去完善这个原型:

  • 在 Navigation drawer 里实现多页面,比如退出按钮。
  • 多屏幕适配
  • 完善登录页的消失动画
  • 完善 Navigation Drawer 移动,比如拖到一半的时候就打开
  • 利用在 Sketch 资源文件中的未被选择的 tabs 显示在当 tab 没有被选择时

如果你完善了原型或者对该教程想到了更好的点子,务必联系我,让我知道。我会特别高兴知道你想到的东西,在 twitter 上找Eden 。

感谢花时间学习这个教程系列。 Good luck with Sketch and Pixate!






原文发布时间为:2016年06月22日


本文来自合作伙伴掘金,了解相关信息可以关注掘金网站。

时间: 2024-07-28 13:53:24

使用 Sketch 和 Pixate 构建 Material Design 原型 - 第三部分的相关文章

使用 Sketch 和 Pixate 构建 Material Design 原型 - 第二部分

本文讲的是使用 Sketch 和 Pixate 构建 Material Design 原型 - 第二部分, 在教程的 第一部分 我们制作了一个简单的登录界面并导出了所有资源. 在第二部分,我们打算继续在 Pixate 里创建一个原型.对于这一部分,你需要: Android 或者 IOS 设备(最好是 Android ).如果你能弄到屏幕尺寸是 1080 x 1920 的设备那更好了,但那不是必须的, Pixate 将为你缩放原型. Pixate Studio 下载 Pixate app 到你的 

使用 Sketch 和 Pixate 构建 Material Design 原型 - 第一部分

本文讲的是使用 Sketch 和 Pixate 构建 Material Design 原型 - 第一部分, 你是否曾经对某一款应用有过很棒的想法或者想向别人展示你的想法会带来改变?可是否又有以下限制令你止步? 没时间去开发款概念产品来证明自己 你对色调.布局和动画等等该如何展示没有把握 你是位应用开发者,想尝试但不知该如何设计 你是位应用设计师,想了解 Sketch 和 Pixate 在设计和构建原型的优势 你对 Material Design 能否提升你的应用没有把握但又想知道到底会变成怎样(

Android构建Material Design应用详解

长久以来.Android的UI并不算美观,以至于很多IT公司在进行界面设计的时候,为了保证双平台的统一性,强烈要求Android端的界面风格必须与iOS端一致,我认为这里非常不合理的,同一操作系统中各个应用之间的界面统一性要远比一个应用在双平台的界面统一性重要的多,只有这样,才能给使用者带来更好的用户体验.为了解决这个问题,Google公司在2014年IO大会上推出了一套全新的界面设计语言--Material Design(材料设计语言),这次Google在界面设计上确实下足了功夫,一个词,好看

深聊MATERIAL DESIGN复杂响应式设计

  2011年,Gmail邮箱的按钮变得更加扁平化.2012年,Google引入分层的卡片设计,使用更多的空白和精心设计的层次排版结构.经历了几年的迭代和提炼,Google寻找到了一种可以贯通的理论体系,即把系统内的各种设计都规范成一种变形的纸片,并套用现实中纸墨的物理模型进行交互,这就是2014年Google I/O大会隆重发布的Material Design. Material Design提出了平面像素的Z轴概念,通过纸片在物理世界中形态的抽象和提炼,定义了各种信息层级和常用状态的表达方式

MATERIAL DESIGN:构建软件的物质世界

  编者按:Google推行的Material Design已经远远超出之前Android Design的格局,视觉标准化的背后,隐藏着Matias Durate和他的谷歌战队背后改变世界的心.如果你还在和隔壁桌的同事争论Material Design到底是不是扁平化的话,不妨看看Durate.Wiley和Jitkoff 的思维已经走到了多远的地方,看看Material Design 看似简单的界面背后那颗炽热的雄心. "将纸片以如此先进的方式呈现出来,这已经与魔法无异了." 在谈及M

Material Design学习之 Button(详细分析,传说中的水滴动画)

转载请注明出处:王亟亟的大牛之路       上一篇大致介绍了Material Design的一些基本概念传送门:http://blog.csdn.net/ddwhan0123/article/details/50541561 这一片来具体学习下里面的内容,这篇分为两部分一部分是原理分析,一部分是代码分析. 先简要的介绍一些理论知识,顺便温顾下基础知识 按钮 按钮由文字和/或图标组成,文字及图标必须能让人轻易地和点击后展示的内容联系起来. 主要的按钮有三种: 悬浮响应按钮(Floating ac

帮你全面彻底搞定MATERIAL DESIGN的学习笔记

  这一年就快完了,你还没搞懂Material design吗?是嫌文档太长,还是觉得自己英文不好?都没关系,我们善良热情的@十萬個為什麽 帮同学们通读了一遍官方的设计指南,去糙取精,整理出这篇干货超多的学习笔记,打包票学完基本就掌握90%了,别错过咯! 自从Material design发布以来,可乐橙就在一直收集相关素材与资源,研究别人的作品.这套设计风格非常鲜明,带有浓郁的Google式严谨和理性哲学,深得我心.实际上,光是研究素材和别人作品,就能发现一些明显的规律,做出几分相似的设计.这

MATERIAL DESIGN设计规范学习心得

  自学笔记就该这么做!今天分享@東門王三 同学关于Material Design的自学成果,他的学习笔记严谨有序,触类旁通,从Material Design到其他系统的设计规范都有所研究,还认真地做了思维导图,同学们可以边学习边借鉴他的自学方法,一举两得呦. 想读好书的同学,可直接到:设计师图书导航 挑选. @東門王三 :随着Android系统从Android 4.4逐步升级到Android L.Material Design作为Android Design演进的最新标准规范,也推出其完整的设

Android Material Design控件学习(一)——TabLayout的用法

前言 Google官方在14年Google I/O上推出了全新的设计语言--Material Design.一并推出了一系列实现Material Design效果的控件库--Android Design Support Library.其中,有TabLayout, NavigationView,Floating labels for editing text,Floating Action Button,Snackbar, CoordinatorLayout, CollapsingToolbar