Material Design For Android
新工作,要自己从设计开始重构移植原有产品,虽然之前有过了解但是并不深入。深入了解学习Material Design的设计思想,以及开发实现。
ⅠMaterial Design设计思想和标准
一、Material design思想
Material design核心思想就是把物理世界的体验带进屏幕。去掉现实中的杂质和随机性,保留其最原始纯净的形态、空间关系、变化与过渡,配合虚拟世界的灵活特性,还原最贴近真实的体验,达到简洁与直观的效果。
二、材质与空间
1.在 Material design中,最重要的信息载体就是魔法纸片。纸片层叠、合并、分离,拥有现实中的厚度、惯性和反馈,同时拥有液体的一些特性,能够自由伸展变形
2.空间 Z轴概念 投影 所有元素都有默认的海拔高度,对它进行操作会抬升它的海拔高度,操作结束后,它应该落回默认海拔高度。同一种元素,同样的操作,抬升的高度是一致的。
三、动画
Material design重视动画效果,它反复强调一点:动画不只是装饰,它有含义,能表达元素、界面之间的关系,具备功能上的作用。
easing效果,easing n.松开,放松;
动画的easing,要先考虑它在现实世界中的运动规律。
水波反馈 点击的位置与所操作的元素关联起来
转场效果 过渡动画,表达界面之间的空间与层级关系,并且跨界面传递信息。
细节动画 图标的变化
四、颜色
颜色不宜过多。选取一种主色、一种辅助色(非必需),在此基础上进行明度、饱和度变化,构成配色方案。
五、图标
模仿现实中的折纸效果,通过扁平色彩表现空间和光影
https://github.com/google/material-design-icons
可以下载最新的
六 布局与组件
所有可操作元素最小点击区域尺寸:48dp X 48dp。
栅格系统的最小单位是8dp,一切距离、尺寸都应该是8dp的整数倍。
以下是一些常见的尺寸与距离:
顶部状态栏高度:24dp
Appbar最小高度:56dp
底部导航栏高度:48dp
悬浮按钮尺寸:56x56dp/40x40dp
用户头像尺寸:64x64dp/40x40dp
小图标点击区域:48x48dp
侧边抽屉到屏幕右边的距离:56dp
卡片间距:8dp
分隔线上下留白:8dp
大多元素的留白距离:16dp
屏幕左右对齐基线:16dp
文字左侧对齐基线:72dp
来源主要参考:
重磅教程!帮你全面彻底搞定Material design的学习笔记
Ⅱ Material Design 对开发来言,自己的理解。
开发源于设计,只有设计遵循了Material Design的思想,开发才能配合做的更好。
Material Design是在Android 4.4 推出的时候提出的 所以对Android 4.4 之前的系统支持不是很好,
在github 看到的demo 基本整合了相当丰富的 Material Design设计元素https://github.com/Eajy/MaterialDesignDemo
配合Android 5.0 6.0系统 更新的新控件,
Android L(5.0)中新增了两个控件分别是RecyclerView,CardView。
RecyclerView
RecyclerView这个控件是一个可以装载大量的视图集合,并且可以非常效率的进行回收和滚动。当你list中的元素经常动态改变时可以使用RecyclerView控件。
RecyclerView非常容易使用,它提供了如下两个功能:
为每个条目位置提供了layout管理器(RecyclerView.setLayoutManager)
为每个条目设置了操作动画(RecyclerView.setItemAnimator)
CardView
CardView继承自FrameLayout,允许你在card视图中显示信息. CardView也可以设置阴影和圆角。
兼容库Android Design Support Library,兼容至Android 2.1
参考:http://www.jianshu.com/p/1e6eed09d48b
使用:compile 'com.android.support:design:23.1.1'
这个库主要包含:
AppBarLayout
用AppBarLayout可以让包含在其中的子控件能响应被标记了ScrollingViewBehavior的的滚动事件(要与CoordinatorLayout 一起使用),利用它我们可以很容易的去实现视差滚动效果。
CollapsingToolbarLayout、
让Toolbar可伸缩,在伸缩的时候决定ToolBar是移除屏幕和固定在最上面。
CoordinatorLayout
协调(Coordinate)其他组件, 实现联动.
掌握 Coordinator Layout
FloatingActionButton
浮动按钮
NavigationView、
抽屉式的导航控件
Snackbar
SnackBar通过在屏幕底部展示简洁的信息,为一个操作提供了一个轻量级的反馈,并且在Snackbar中还可以包含一个操作,在同一时间内,仅且只能显示一个 Snackbar,它的显示依赖于UI,不像Toast那样可以脱离应用显示。它的用法和Toast很相似,唯一不同的就是它的第一个参数不是传入Context而是传入它所依附的父视图,但是他比Toast更强大。
TabLayout
ViewPager fragment一起使用
TextInputLayout
提示输入内容