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 ...
随机推荐
- 改变父元素的透明度,不影响子元素的透明度—css
1.如果我们给父元素添加opacity:0.4后,子元素的red颜色也变成了0.4的透明度, 例子如下: <!DOCTYPE html> <html> <head> ...
- db2 统计信息 runstats
1.runstats的语法:runstats on table [模式名].[表名] with distribution and detailed indexes all注意:你可以在所有列上,或者仅 ...
- c++ 中的符号与关键字
符号按照符号的ASC码数值从小到达排列,关键字按照英文字母排序. & [38] 位运算:取地址:左值引用[指针.引用都是可以做类型转换的] #include <iostream> ...
- Vue.js 2.0 跨域请求数据
Vuejs由1.0更新到了2.0版本.HTTP请求官方也从推荐使用Vue-Resoure变为了 axios .接下来我们来简单地用axios进行一下异步请求.(阅读本文作者默认读者具有使用npm命令的 ...
- Netty 系列目录
Netty 系列目录 二 Netty 源码分析(4.1.20) 1.1 Netty 源码(一)Netty 组件简介 2.1 Netty 源码(一)服务端启动 2.2 Netty 源码(二)客户端启动 ...
- IE浏览器调用jquery需要注意的小问题
今天在进行前端重构的时候发现了一个非常奇怪的浏览器兼容性问题,我想在网页上放一个JS的特效,于是下载了jquery-easyui,经过修改完成所需要的效果后,准备放入项目中,发现在IE浏览器中无法运行 ...
- linux 操作系统rz sz 快速上传和下载文件
## Centos 安装 rz sz yum install lrzsz ### Ubuntu 安装 apt-get install lrzsz
- java中配置JPA方法
JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中 使用JPA进行保存对象时,可以用对象来接收,例 ...
- 2018.06.29 NOIP模拟 繁星(前缀和)
繁星 [问题描述] 要过六一了,大川正在绞尽脑汁想送给小伙伴什么礼物呢.突然想起以前拍过一张夜空中的繁星的照片,这张照片已经被处理成黑白的,也就是说,每个像素只可能是两个颜色之一,白或黑.像素(x,y ...
- cmake-file
file: File manipulation command. file(WRITE filename "message to write"... ) file(APPEND f ...