Android 美学设计基础 <2>
我们接着上期的项目进行分享。
1.2.2 Elevation (仰角)
仰角只的是不同的素材块在Z轴上的选对位置

仰角的测量方式
这里只的是两个平面在z的距离,记住我们默认每个平面都是1dp的厚度

1图是我们看到的两个平面 下方的这个在上,因为有阴影
2图我们测量他们直接的距离 为7dp
仰角系统
在我们设计的时候,页面中所有的元素,都会有一个仰角的值,这就是我们说的仰角系统
不同的素材,在拥有对应的仰角数值的时候,会完成以下的事情:
1. 让各自的素材在自己对应的z值附近完成水平的移动(滑动我们的侧栏)
2. 反应不同的元素的位置关系。比如我们可以通过一个阴影的效果来表现一个按钮是和他下面的平面是分开的。
3. 可以让用户去集中注意力到我我们需要让他们的注意的东西上,比如系统弹出的对话,在仰角上是最上层的。
还有 平级别的元素中,我们往往让他们拥有一样的仰角数值

仰角在交互中的变化
在交互的过程中,我们有时候希望我们交互的元素在仰角上会发生改变来呈现比较好的表现效果。而在交互完成后,仰角回复默认值

在按下按钮后,养殖值变为8dp
仰角干涉
在我们的元素在他固定位置和移动位置之间发生移动时,我们不希望他与其他的元素发生碰撞,
我们通过两个方式来避免
1. 如果我们的一个页面需要穿透一个按钮的时候,那我们让这个按钮短暂的消失
2. 我们只移动部分页面,让他上方可以畅通无阻
描绘仰角
我们一般会用三种简单的方式来呈现仰角
1. 我们会给他一个很明确的边界,让他和周围的元素可以轻松区分开
2. 我们会让他遮盖住一部分其他的平面
3. 和其他的平面保持一定的距离
平面的边界
常用的来表现边界的方法有:
1. 用阴影来表现边界
2. 使用不同的颜色来变现边界
3. 使用不同的透明度来变现边界
平面的遮盖
这个在一定程度上可以让用户很明确平面之间的位置关系

距离
通常,我们会使用变暗的背景或者是阴影效果,来表现平面之间的距离效果。如下

阴影效果,控制阴影的大小来变现距离感

仰角的运动效果
我们通常会使用下列运动效果:
1. 改变阴影的显示效果(阴影变大表明平面在往上移动)
2. 显示重叠(一个平面可以全部或者部分覆盖其他所有平面)
3. 改变大小(一个页面也变大来盖住其他的页面)
4. 视差效果(不同的页面 移动速度不同 造成视差的效果)
不同仰角他们之间的关系
一些内容如果他们有关系,那他们在仰角位置上,可能会选择相似的值
首先,我们先看不同的仰角位置,内容的关系
1. 可能为了突出更重要的内容
2. 引起注意
3. 比如滑动按钮,来控制他后面的所有内容

在设计上,一些常用的仰角值:
| 
 Component  | 
 Default elevation values (dp)  | 
| 
 Dialog  | 
 24  | 
| 
 Modal bottom sheet Modal side sheet  | 
 16  | 
| 
 Navigation drawer  | 
 16  | 
| 
 Floating action button (FAB - pressed)  | 
 12  | 
| 
 Standard bottom sheet Standard side sheet  | 
 8  | 
| 
 Bottom navigation bar  | 
 8  | 
| 
 Bottom app bar  | 
 8  | 
| 
 Menus and sub menus  | 
 8  | 
| 
 Card (when picked up)  | 
 8  | 
| 
 Contained button (pressed state)  | 
 8  | 
| 
 Floating action button (FAB - resting elevation)  | 
 6  | 
| 
 Top app bar (scrolled state)  | 
 4  | 
| 
 Top app bar (resting elevation)  | 
 0 or 4  | 
| 
 Refresh indicator  | 
 3  | 
| 
 Contained button (resting elevation)  | 
 2  | 
| 
 Search bar (resting elevation)  | 
 1  | 
| 
 Card (resting elevation)  | 
 1  | 
| 
 Switch  | 
 1  | 
| 
 Text button  | 
 0  | 
| 
 Standard side sheet  | 
 0  | 
不同组件常用的仰角适宜图

Android 美学设计基础 <2>的更多相关文章
- Android 美学设计基础 <3>
		
本期接着对Android的美学设计的分享. 1.3 Light and shadows 光学与阴影 1.3.1 Light 在素材设计的环境中,我们会用虚拟的光来照亮UI界面.主灯光会产生尖锐,有方向 ...
 - Android 美学设计基础 <1>
		
在做原型的时候,和设计师交流的过程中,发现在设计安卓交互的过程中,其实是存在一些基本规则的.那这些规则,可以保证第一应用美观,第二不会出现反人类的开发难度,第三,用设计师的话说就是可能会有“最好的体现 ...
 - Android程序设计基础作业目录 (作业笔记)
		
Android程序设计基础 • [目录] 第1章 Android程序入门 >>> 1.2.4 安装并配置 Android Studio 开发工具和 Genymotion 模拟器. 1 ...
 - Android程序设计基础 • 【目录】
		
章节 内容 实践练习 Android程序设计基础作业目录 (作业笔记) 第1章 Android程序设计基础 • [第1章 Android程序入门] 第2章 Android程序设计基础 • [第2章 基 ...
 - Android程序设计基础 • 【第1章 Android程序入门】
		
全部章节 >>>> 本章目录 1.1 Android 平台介绍 1.1.1 Android 简介 1.1.2 Android 平台的发展 1.1.3 Android 平台架 ...
 - Android与MVC设计模式
		
写在前面,之前做过一段时间移动开发,后来因为工作原因搁浅了,最新重新拿起Android权威编程指南学习,顺道做个学习笔记. 首先呢,我想说无论是计算机科班出身还是培训班出身,都听说过高内聚低耦合以及M ...
 - 赵雅智:android教学大纲
		
带下划线为详细内容链接地址.点击后可跳转.希望给大家尽一些微薄之力.眼下还在整理中 教学章节 教学内容 学时安排 备注 1 Android高速入门 2 Android模拟器与常见命令 3 Androi ...
 - 详解 “Android UI”设计官方教程
		
我们曾经给大家一个<MeeGo移动终端设备开发UI设计基础教程>,同时很多朋友都在寻找Android UI开发的教程,我们从Android的官方开发者博客找了一份幻灯片,介绍了一些Andr ...
 - Android Develop 之 Ddevelop WorkFlow Basics
		
Android应用程序的开发流程一言以蔽之,可以用一图五步概括.一图如下. 第一步:安装.安装开发环境,包括JDK,Android Studio,SDK Manager(通常下载Android Stu ...
 
随机推荐
- Java的8种包装类:Wrapper Class
			
Java有8种基本数据类型,为什么又要出现对应的8种包装类: 1.Java的8种基本数据类型不支持面向对象编程机制 2.8种基本数据类型不具备“对象”的特性:没有成员变量.方法可供调用 3.例如:某个 ...
 - Problem B. Market(market.c/cpp/pas)
			
Problem B. Market(market.c/cpp/pas)Time limit: 1 secondsMemory limit: 128 megabytes在比特镇一共有 n 家商店,编号依 ...
 - apache的80端口被占用
			
1.netstart -ano | findstr "80":查看80端口是否被占用,并找出对应的pid 2.关掉pid对应的进程
 - Java NIO系列教程(四) Scatter 和 Gather
			
Java NIO系列教程(四) Scatter 和 Gather Java NIO 开始支持 scatter/gather,scatter/gather 用于描述从 Channel(译者注:Chann ...
 - Unicode、UTF-8 和 ISO8859-1
			
Unicode.UTF-8 和 ISO8859-1到底有什么区别 1.本文主要包括以下几个方面:编码基本知识,java,系统软件,url,工具软件等. 在下面的描述中,将以"中文" ...
 - 2018.09.11 poj2976Dropping tests(01分数规划)
			
传送门 01分数规划板子题啊. 就是简单变形移项就行了. 显然 ∑i=1na[i]∑i=1nb[i]≤k" role="presentation" style=" ...
 - linux中nfs启动报rpcbind.socket failed to listen on sockets: Address family not supported by protocol
			
1.systemctl start rpcbind.service 报错: [root@autodeploy ~]# journalctl -xe -- Support: http://lists.f ...
 - python调用dll方法
			
在python中调用dll文件中的接口比较简单,实例代码如下: 如我们有一个test.dll文件,内部定义如下: extern "C"{ int __stdcall test( v ...
 - C++中的数组问题
			
C++中的数组问题 1. 数组赋值与初始化 (1)直接初始化: ]={,,}: (2)遍历访问初始化: ;i< ;i++) //直接读入,或者用别的数组,以及别的(i+1)等. (3)内存操作函 ...
 - (转)mmap和shm共享内存的区别和联系
			
共享内存的创建 根据理论: 1. 共享内存允许两个或多个进程共享一给定的存储区,因为数据不需要来回复制,所以是最快的一种进程间通信机制.共享内存可以通过mmap()映射普通文件 (特殊情况下还可以采用 ...