Android 美学设计基础 <3>
本期接着对Android的美学设计的分享。
1.3 Light and shadows 光学与阴影
1.3.1 Light
在素材设计的环境中,我们会用虚拟的光来照亮UI界面。主灯光会产生尖锐,有方向的阴影。背景光会在各个角度产生分散的,柔和的阴影,我们叫背光阴影。

主光产生的阴影

背景光产生的阴影
1.3.2 光源
在安卓和IOS的设计中,阴影的产生,是因为处于不同仰角位置(z轴)的素材平面,对光源进行遮挡时产生的。这点上和web的产品不同,web的产品的阴影,都是只是在y轴上来表现阴影效果。

我们结合直射光+散射光时候的阴影效果。
1.3.2 阴影
阴影可以协助我们发现 一个素材组件的深度,运动的方向以及表面的边缘。一个表面的阴影,是由他自己的仰角以及他和其他平面的关系来共同决定的。
阴影的应用
首先,在同一个产品中,仰角和对应的阴影的对应关系,应该保持一致。

接着 仰角值越大(离用户的相对位置越近),产生的阴影范围也就越大

在我们的界面设计中, 如果我们不使用阴影这个元素,那我们所有界面的移动,都是默认在一个仰角进行的。
2. Layout 布局
2.1 理解布局设计:我们通过使用统一的元素和间距,使得我们的布局设计在不同的平台和环境以及屏幕大小都可以保持一致。
2.1.1 布局的使用
a. 可预见性
UI界面应该是可以直接表现的,并且可以预测的布局(统一的UI区域以及空间组织的方式)

b. 一致性
布局上,我们应该使用一致的网格,标线和填充形式

c. 回应
对于来自用户,设备,和屏幕元素的输入,布局需要的是可以适应的并且有反馈的。
2.1.2 结构
在布局的设计中,各个部件应该在视觉上看起来是均衡的。一般来说我们都使用8dp的网格来座位最小的一个测量单位,对于logo那样的特别小的组件,我们一般也可以用4dp的网格。

2.1.2 Pixel Density
屏幕的PD和分辨率对于不同的平台和设备来说都是不同的。对于不同的设备,我们可以用这种灵活可变的方式在达到最好的视觉呈现效果。
计算pd
首先,在1英寸的品目范围内的像素点的数量我们叫像素密度。高密度的屏幕,当然在一个固定尺寸中的像素点会多于低密度的屏幕。所以一个固定像素点的图片,在高精度的屏幕上,会显示的视觉效果上更小一点。


密度的独立性
密度的独立性指的是虽然屏幕的像素点密度不同,但是图标依然显示的统一的大小。效果如下图。

关于Android的PD
When developing an Android app, use dp to display elements uniformly on screens with different densities. A dp is equal to one physical pixel on a screen with a density of 160.
当我们开发一个安卓app的时候,我们使用dp来确保我们的元素在不同的密度屏幕上显示的是统一的。一个dp等于的绝对值的大小dpi/160
dp = (width in pixels * 160 )/screen density
|
Screen physical width |
Screen density |
Screen width in pixels |
Screen width in dps |
|
1.5 in |
120 |
180 px |
240 dp |
|
1.5 in |
160 |
240 px |
|
|
1.5 in |
240 |
360 px |
针对文字信息我们一般用scalable pixels(sp), 这里用户可以调节字体来控制文字信息的显示大小。
pd in IOS
逻辑分辨率
ios设备是通过逻辑分辨率来控制显示密度,他们来测量没一个点里面的单位,举个例子, 如果你现在为iphone x设计一个元素, 你可能选择一个逻辑分辨率的大小为 375 * 812个点。接着,在这个给定后,图形处理硬件会自动把这个组件填充到1125 * 2436的屏幕中。
Android 美学设计基础 <3>的更多相关文章
- Android 美学设计基础 <1>
在做原型的时候,和设计师交流的过程中,发现在设计安卓交互的过程中,其实是存在一些基本规则的.那这些规则,可以保证第一应用美观,第二不会出现反人类的开发难度,第三,用设计师的话说就是可能会有“最好的体现 ...
- Android 美学设计基础 <2>
我们接着上期的项目进行分享. 1.2.2 Elevation (仰角) 仰角只的是不同的素材块在Z轴上的选对位置 仰角的测量方式 这里只的是两个平面在z的距离,记住我们默认每个平面都是1dp的厚度 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 ...
随机推荐
- JS如何获取PHP循环中的ID
JS如何获取PHP循环中的ID kaalrz 二路公交车 结帖率:83.33% 首先抱歉,因为昨天那帖图片几次都不能用,修改到不能再次修改,今天早上回帖又提示没有这个帖,只好重发一次. 如 ...
- mysql 执行多线程临时方案
sqr::IDatabase *db=NULL;IDbConnection *conn = NULL;int main(int argc, char* argv[]) { db = GetDataba ...
- To set Nginx Upload Size For “413–Request Entity Too Large” Error
Modify NGINX Configuration File sudo nano /etc/nginx/nginx.conf Search for this variable: client_max ...
- SqlServer和MySql允许脏读的实现方式,提高查询效率
--Sql Server 允许脏读查询sqlselect * from category with(nolock) --MySql 允许脏读查询sql Mysql没有语法糖,需要原生的sqlSET S ...
- org.apache.hadoop.ipc.RemoteException: java.io.IOException:XXXXXXXXXXX could only be replicated to 0 nodes, instead of 1
原因:Configured Capacity也就是datanode 没用分配容量 [root@dev9106 bin]# ./hadoop dfsadmin -report Configured Ca ...
- 2018.09.16 bzoj1176: [Balkan2007]Mokia(cdq分治)
传送门 调了半天发现是输出优化打错了求心理阴影体积233 这题很简单啊. 一个修改操作x如果对一个询问操作y有贡献那么有. tx<ty,Xx<=Xy,Yx<=Yy" rol ...
- hadoop学习笔记(六):HBase体系结构和数据模型
1. HBase体系结构 一个完整分布式的HBase的组成示意图如下,后面我们再详细谈其工作原理. 1)Client 包含访问HBase的接口并维护cache来加快对HBase的访问. 2)Zooke ...
- 理解指令的restrict属性(转)
restrcit属性说明 restrict: EACM中的任意一个之母.它是用来限制指令的声明格式的. E - 元素名称:<my-directive></my-directive&g ...
- UVaLive 4597 Inspection (网络流,最小流)
题意:给出一张有向图,每次你可以从图中的任意一点出发,经过若干条边后停止,然后问你最少走几次可以将图中的每条边都走过至少一次,并且要输出方案,这个转化为网络流的话,就相当于 求一个最小流,并且存在下界 ...
- python 取整itertools
#coding:utf-8 import sys import itertools def MaxString(n,nums): list1 = nums list2 = [] for i in ra ...