Google I/O 2014提出Material Design,这段时间听到不少关于Material Design的解读,至此Google已经定位了自己的设计语言,我个人看来就是Android和iOS设计语言更加接近了。

说到Material Design,首先要说的是乔布斯倡导的拟物化设计(Skeuomorph),在智能手机初期,明确讲是触摸屏智能手机的初期,想让人们去接受和理解一个新的材质(电子触摸屏),最好的方式或许就是类比,这也是人类接触新生事物时最本能的想法,即这东西跟我们看到的过的什么类似?这这个时间拟物化能更好地给用户提示,这是相机,这是笔记本,这是图片。在早期的iPhone上你可以明显感觉到这一点。

然而拟物化也有他的缺点,对于设计师和用户来说,最大的缺点是:不统一。这是设计中的大忌,这会带来两个结果:

  • 同一套设计,对不同的人理解存在偏差。你可以参考iPhone中的游戏图标。
  • 设计师的水平对设计结果影响很大。你可以参考Apple自家的图标和一些第三方的图标。

 

苹果的乔纳森.艾维(Jonathan Ive)想解决的是第一个问题,即随着应用的大规模增加,各式各样的界面层出不穷,怎么样才能让iOS统一化这种用户体验,让设计师和用户可以很快的设计,理解并接受一个新的应用。其次乔纳森.艾维自己也说过,现在的触摸屏已经是一个“斯通见惯”物件了。最早的拟物化给用户提示的优点正在逐渐减小,而拟物化设计不统一这个特性带来的缺点却在逐渐放大。乔.艾维在iOS 7和即将发布的iOS 8中给出了自己的解。我想说的这不是推翻乔布斯的设计,我个人更觉得是乔布斯设计的一种进化,拟物化遇到了新的问题,乔纳森.艾维想办法解决,就是这样。

相反Google试图解决的是第二个问题,设计师的水平对结果影响很大,从丑陋的Android应用图标可见一斑。所以在会有小米和锤子的从绘图标运动。Google为此提出了Material Design。Material Design更像是WP扁平化的一个升级。但所带来的意义远超过扁平化,WP的扁平化唯一的优点就是来自Metro——辨识度很高,很容易做老人机。但是失去了美感,更重要的是被拍平了之后物件失去了质感,失去了物件的物理特性。Material Design将跑偏的Flat Design带回来了。用统一的,物理的,抽象的去作为自己的设计语言。

Material Design强调了:

  • 空间关系
  • 运动
  • 运动带来的空间关系的变化

Material Design中的阴影,是为了体现这种空间关键的手段,也是这样Floating Action Button才出现了。卡片式的堆叠才变的生动和合适起来。

然而物件不都是静止的,我们的交互(触摸)其实都是一种运动,运动带来了物件的变化。当我们按下了Button,阴影变小了,这反应了受我们按下的作用力两层之间的间隔缩小了。我们从排序列表是,当我们点击一行不动,这行变大了,我们知道它浮动起来了,我们可以在行间之间自由移动了。

我们以一个小示例结尾:

 

Reference:

http://en.wikipedia.org/wiki/Skeuomorph

www.google.com/design/spec/material-design/introduction.html

http://zhuanlan.zhihu.com/bigertech/19787211

从拟物化到扁平,再到Material Design的更多相关文章

  1. 直接拿来用!十大Material Design开源项目

    来自:http://www.csdn.net/article/2014-11-21/2822753-material-design-libs/1 介于拟物和扁平之间的Material Design自面 ...

  2. 十大Material Design开源项目

    介于拟物和扁平之间的Material Design自面世以来,便引起了很多人的关注与思考,就此产生的讨论也不绝于耳.本文详细介绍了在Android开发者圈子里颇受青睐的十个Material Desig ...

  3. [转]ANDROID L——Material Design详解(动画篇)

    转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! 转自:http://blog.csdn.net/a396901990/article/de ...

  4. Android群英传笔记——第十二章:Android5.X 新特性详解,Material Design UI的新体验

    Android群英传笔记--第十二章:Android5.X 新特性详解,Material Design UI的新体验 第十一章为什么不写,因为我很早之前就已经写过了,有需要的可以去看 Android高 ...

  5. ANDROID L——Material Design具体解释(动画篇)

    转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! Android L: Google已经确认Android L就是Android Lolli ...

  6. ANDROID L——Material Design详解(UI控件)

    转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! Android L: Google已经确认Android L就是Android Lolli ...

  7. [转]Android 5.0——Material Design详解(动画篇)

    Material Design:Google推出的一个全新的设计语言,它的特点就是拟物扁平化. Material Design包含了很多内容,今天跟大家分享一下Material新增的动画: 在Andr ...

  8. ANDROID L——Material Design详细解释(UI控制)

    转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! Android L: Google已经确认Android L就是Android Lolli ...

  9. iOS之微博UI实例--拟物化设计(成功了90%)

    *:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...

随机推荐

  1. SQL查询中in、exists、not in、not exists的用法与区别

    1.in和exists in是把外表和内表作hash(字典集合)连接,而exists是对外表作循环,每次循环再对内表进行查询.一直以来认为exists比in效率高的说法是不准确的,如果查询的两个表大小 ...

  2. mysql之TIMESTAMP(时间戳)用法详解

    一.TIMESTAMP的变体 TIMESTAMP时间戳在创建的时候可以有多重不同的特性,如: 1.在创建新记录和修改现有记录的时候都对这个数据列刷新: ? 1 TIMESTAMP DEFAULT CU ...

  3. Hack语言特性之类型化

    Hack最基础的特性就是类型标注.PHP5已经开始支持对象的类型化,PHP7也提供了标量类型化声明.Hack提供了全面的类型标注支持,与其typecher配合使用,还可以实现快速.前置静态类型验证. ...

  4. 最小生成二叉树-prim算法

    1.prim算法:一种计算生成最小生成树的方法,它的每一步都会为一棵生长中的树添加一条边. 2.时间复杂度:

  5. java servlet手机app访问接口(四)推送

    一. 服务端DEMO下载及运行. 登录友盟后,浏览器直接输入下面这个URL,直接进入文档开发和DEMO下载页面:http://dev.umeng.com/push/ios/integration(下面 ...

  6. python套接字基本使用

    socket socket通常也称作"套接字",用于描述IP地址和端口,应用程序通常通过"套接字"向网络发出请求或者应答网络请求,可以认为是一种计算机网络的数据 ...

  7. viewport ——视区概念,为 自适应网页设计

    什么是Viewport 手机浏览器是把页面放在一个虚拟的“窗口”(viewport)中,通常这个虚拟的“窗口”(viewport)比屏幕宽,这样就不用把每个网页挤到很小的窗口中(这样会破坏没有针对手机 ...

  8. rabbitmq binary/other_system内存占用很高

    最近有台服务器的MQ应用占用内存比较偏高,如下: 但是看控制台本身内存中消息积压并不多, 查看rabbtmqctl发现,binary data和other data占据了绝大部分的内存,如下: {me ...

  9. c#事务用法

    ado.net2.0的SqlTransaction使用方法 /////ado.net1.0中使用Transacation(事务) string connectionString = "dat ...

  10. 清除浮动类的css

    .clearfix:after{ content:; visibility:hidden; display:block; clear:both;} .clearfix{ zoom:;}