14年6月26日的Google I/O大会上,Google推出了一门全新的设计语言Material Design。Material Design在随后的一年里被逐渐应用到Android, Web等平台中。Material Design的推出意味着Google对移动端和网页端设计的整合。固然没有引起轩然大波,但是Material Design却让Android开发者看到了一点福音。
虽然Android系统广受诟病,越来越多的用户投奔苹果的iOS系统。然而这阻挡不了Android的不断改进。14年Google I/O, Google推出了Android的5.0版本,代号Lollipop。5.0版本在设计上采用全新的Material Design,虽然这次升级对ROM生产商来说是道“过不去的坎儿”,但是对开发者群体而言却是一次很不错的升级。因为开发者可以凭借有些的设计资源打造出更好看的App。
关于Material Design
Material design is a comprehensive guide for visual, motion, and interaction design across platforms and devices.
这是Google官方给的解释, Material Design 中文直译为 “物质的设计”。可以简单理解为画面中的所有元素都可以看作是真实的物质,物质存在于空间中,并且存在光、影、运动等特征。所以Material Design的众多原则都是基于Material这个概念而提出的。
Material Design基本原则
Material Design作为设计与交互的一部分,由设计师来阐述更为专业。以下只是抛砖引玉的介绍,也许身边的设计师朋友会更专业的见解。
Material is the metaphor
A material metaphor is the unifying theory of a rationalized space and a system of motion
举例来说,在Android Lollipop系统中,当用户点击操作时,界面会反馈出水纹般的涟漪向周边散去,作为对用户点击操作的直接反馈。Material的设计都是基于现实,并在现实世界的基础上予以创新的。创新之处表现在元素之间整理运动的和谐。即使是在现实世界进行创新,最重要的是要Material Design不会破坏物理世界的规则。
Bold, graphic, intentional
The foundational elements of print-based design—typography, grids, space, scale, color, and use of imagery—guide visual treatments.
设计中的基本元素网格,空间,比例,字体,颜色等的结合能够给用户带来更好的体验,从而产生更大的价值。Material Design给我们指定了一些常见的搭配组合,比如颜色的组合、App中不同部分字体大小,组件之间的边距等。
Motion provides meaning
Motion respects and reinforces the user as the prime mover. Primary user actions are inflection points that initiate motion, transforming the whole design.
动画通常是App中最常见的交互,在Material Design出来之前,大部分App是很少有动画的。因为动画从设计到最后被用户使用,需要动画的设计以及开发,有时还会受限于平台。Material Design在动画方面有所加强,官方推出了许多默认的动作,页面各个元素之间的相互运动等。期望通过元素的运动向用户传达更为核心的价值和功能。
为什么我们需要Material Design
设计主要是为了提升用户体验,辅助产品功能,起到锦上添花的效果。Google推出Material Design也许希望对所有的Google产品进行设计上的统一化。
从Android平台来看,以前的Google Apps很难说有什么风格,其他厂商开发的App也是风格各异。Google希望通过Lollipop对App统一风格,所以在5.0+平台上的Gmail, Youtube, Calender等都进行了风格的统一化,借此引导更多的设计师和开发者开发出更“接地气”的App。
Material Design强调跨平台设计,如果你遵从Material Design,你会发现将无论是宽屏平板设备、还是手机,你会发现你的应用可以很智能的进行展示。这将极大减轻适配平板带来的工作量。是不是有点类似于Web上的响应式设计呢?
当然选择是自由的,如果你觉得你的App不需要Material Design,那么TA真的不需要。
如何Material Design App
据个人观察,目前国内市场上大部分的App没有Material Design的概念。原因不得而知。但是遵循Material Design的应用在国外却比较常见。比如我个人常用的雅虎天气。
那么如何空手开发Material Design 应用呢?假定读到这里的你是个开发人员:
1.合适的SDK版本和相关兼容包
build.gradle
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
|
2.使用 Material theme
values-v21/styles.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
values/styles.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
|
使用你定义的AppTheme
1 2 3 4 5 6 7 8 |
|
3.使用专为Material Design打造的Android控件
你可以参考Google Training Material Design获取更多的Material Design组件的使用方法。
Lists and Cards
RecyclerView
引入RecyclerView到工程中:
1
|
|
RecyclerView控件是ListView的更高效更灵活的版本。可以看作是对ListView更好的封装:
- 解决ListView多列显示的难题;
- 不用担心开发人员没有复用View,因为它会强迫你这样做;
- 更方便的动画支持,移除中间某一项时,可以设置后面几项动画移动;
CardView
1
|
|
卡片式布局,你的界面就是有导航和卡片组成的。卡片能够设置圆角和阴影。
Design support library
使用Design support包含的空间,需要引入Design support库:
1
|
|
Design support提供了一些很常见很实用的控件。
Navigation View
Material Design推荐使用DrawerLayout抽屉式布局显示导航,所以Android一直没有为底部导航推出相应的控件。按照Google最新的设计,所有的导航都会被设置为抽屉显示,点击左上角菜单可以抽屉式弹出菜单项。
NavigationView就是和DrawerLayout搭配使用的神器。使用NavigationView只需要提供icon和title就可以生成专业的侧边导航。
Floating Action Button
Material Design引入了z轴,这个控件可以轻松制作出有阴影的悬浮圆形按钮。
Snackbar
底部栏消息提示控件,显示显示不再只有Toast和AlertDialog,还有Snackbar。
Tabs
在TabLayout出来之前,开发者通常手写Tab控件,并且需要手动控制UI。并且设计出来的Tab效果很一般。Google在2014年的iosched工程中推出了SlidingTabLayout,这个组件后来也在众多项目中被开发者用到。但是开发者还是得添加额外的代码来控制UI。
TabLayout帮助开发者创建符合界面风格的Tab,并且简单易用。
CoordinatorLayout & Collapse Toolbar
更加优美的导航,导航可以相应页面滚动,也产生相应的滚动效果。可以参考Android 5.0版本默认的联系人应用。
结语
目前 Material Design 在国内潜伏了一年,也没引起太大的市场反馈。互联网泡沫下,决策者的心思都花在了如何推广如何吸引第一批用户上了,难以负担App重新设计带来的时间成本,更不行因为重设计造成现有用户的流失。
当然,如果某一天所有的国内手机都可以升级为5.0系统,是不是会有许多软件开发者考虑对App做Material Design呢?Android系统深度定制化依然成为5.0难以在国产手机中推广的重要阻碍。
Material Design作为Android App设计风格的趋势,尝试在你的App中使用新的风格,也许可以给你的产品带来不一样的体验。
Open Party PPT 下载地址
Android Material Design PPT 下载
参考