Android视觉规范-间距规范与文字规范单位换算(dip、sp与px)
http://blog.csdn.net/shimiso/article/details/29826073
1、dip与px
Android工程师在写页面时,margin值的单位是dip,而视觉设计师通常情况下是通过px来控制margin值的,不同单位之间的差别是什么呢?看下面的参数。
在WVGA(800x480)下dip与px之间的视觉测算结果:
|
1dip=2px |
9dip=14px |
17dip=26px |
|
2dip=3px |
10dip=15px |
18dip=27px |
|
3dip=5px |
11dip=17px |
19dip=29px |
|
4dip=6px |
12dip=18px |
20dip=30px |
|
5dip=8px |
13dip=20px |
21dip=31px |
|
6dip=9px |
14dip=21px |
|
|
7dip=11px |
15dip=23px |
|
|
8dip=12px |
16dip=24px |
根据上述数值可以得出一个在WVGA下dip与px的换算公式(2N代表任意偶数,2N-1代表小与偶数1的奇数):
dip与px之间的换算公式:
a. 2N + 2N/2 = PX
b.(2N-1)+ 2N/2 = PX
注:偶数值dip 的1.5倍等于相对应的px值,偶数值的间距与奇数元素设置居中对齐的时候会有1px的误差,仔细看可能会不是很美观(如下图)。
A与B居中对齐时有一个值的差,C与D可以完美居中对齐。
但是这种情况发生的几率还是非常小的,只有在细扣页面的时候常见到,遇到时应急处理一下也可以解决问题,但是如果在一开始设计时就注意了的话,后面细扣也不会出现问题的,也就省去了应急处理的时间,在一定程度上可以提高效率。
在HVGA(320x480)下dip与px之间的视觉测算结果:
|
1dip=1px |
9dip=9px |
17dip=17px |
|
2dip=2px |
10dip=10px |
18dip=18px |
|
3dip=3px |
11dip=11px |
19dip=19px |
|
4dip=4px |
12dip=12px |
20dip=20px |
|
5dip=5px |
13dip=13px |
21dip=21px |
|
6dip=6px |
14dip=14px |
|
|
7dip=7px |
15dip=15px |
|
|
8dip=8px |
16dip=16px |
根据上述参数得出的结果是dip值等于px值。
由上述得出,视觉设计师在WVGA(480x800)模式下设计,建议最佳间距是:12px、18px、24px、30px、36px、42px、48px,由于dip、px值在HVGA\WVGA 对应的都是偶数,各个元素能做到最严格的对齐。
二、sp与px
在WVGA(800x480)下sp与px之间的视觉测算结果:
|
7sp=11px |
15sp=23px |
23sp=35px |
|
8sp=12px |
16sp=24px |
24sp=36px |
|
9sp=14px |
17sp=26px |
25sp=38px |
|
10sp=15px |
18sp=27px |
26sp=39px |
|
11sp=17px |
19sp=29px |
27sp=41px |
|
12sp=18px |
20sp=30px |
28sp=42px |
|
13sp=20px |
21sp=31px |
29sp=44px |
|
14sp=21px |
22sp=33px |
30sp=45px |
根据上述参数得出的结果:
sp与px之间的换算公式与dip与px的换算公式相同:
a. 2N + 2N/2 = PX
b.(2N-1)+ 2N/2 = PX
在HVGA(320x480)下sp与px之间的换算结果:
|
7sp=7px |
15sp=15px |
23sp=23px |
|
8sp=8px |
16sp=16px |
24sp=24px |
|
9sp=9px |
17sp=17px |
25sp=25px |
|
10sp=10px |
18sp=18px |
26sp=26px |
|
11sp=11px |
19sp=19px |
27sp=27px |
|
12sp=12px |
20sp=20px |
28sp=28px |
|
13sp=13px |
21sp=21px |
29sp=29px |
|
14sp=14px |
22sp=22px |
30sp=30px |
根据上述参数得出的结果是sp值等于px值。
由上述得出,视觉设计师在WVGA(480x800)模式下设计,建议常用最佳字号是:18px、24px、30px、36px、42px,在一些需要严格对齐的位置,这几个参数的文字是不会出问题的,当然其他的字号也是可以用的,毕竟应用中不是所有的文字都需要严格的对齐。
知识普及:
sp、dip,Android默认单位,可根据不同的屏幕大小自适应,同样的字号,不同的屏幕尺寸下显示的视觉效果大小不同。
Px属于固定像素值,不会主动自适应屏幕大小,不同的屏幕尺寸下显示的视觉效果大小效果相同。
Android视觉规范-间距规范与文字规范单位换算(dip、sp与px)的更多相关文章
- Android textView 动态设置代码字号大小,支持单位选项 dp,sp or px
setTextSize(TypedValue.COMPLEX_UNIT_PX,22); //22像素 setTextSize(TypedValue.COMPLEX_UNIT_SP,22); //22S ...
- Android 视觉规范
各种分辨率下图片尺寸 工程师通常开发三套UI布局文件,所以设计师通常也要不同的需求处理2-3套切图. con Type Standard Asset Sizes (in Pixels), for Ge ...
- 前端编码规范(2)—— HTML 规范
HTML 规范 文档类型 推荐使用 HTML5 的文档类型申明: <!DOCTYPE html>. (建议使用 text/html 格式的 HTML.避免使用 XHTML.XHTML 以及 ...
- Dojo初探之1:AMD规范,编写符合AMD规范(异步模块加载机制)的模块化JS(其中dojo采用1.11.2版本)
一.AMD规范探索 1.AMD规范(即异步模块加载机制) 我们在接触js的时候,一般都是通过各种function来定义一些方法,让它们帮我们做一些事情,一个js可以包含很多个js,而这些functio ...
- Java代码编写规范(不是标准规范,自行整理,无须纠结)
最近回过头来给以前的项目增加功能,发现之前写的注释非常不全,代码也非常的不整洁,有些地方写的''窝七八烂的,看着很不舒服:又恰好经理最近也经常跟我提起代码规范,我们就讨论了一下代码规范的重要性和必要性 ...
- Python 浅谈编程规范和软件开发目录规范的重要性
最近参加了一个比赛,然后看到队友编程的代码,我觉得真的是觉得注释和命名规范的重要性了,因为几乎每个字符都要咨询他,用老师的话来说,这就是命名不规范的后续反应.所以此时的我意识到写一篇关于注释程序的重要 ...
- Commit message 的写法规范。本文介绍Angular 规范(
Commit message 的写法规范.本文介绍Angular 规范( http://www.ruanyifeng.com/blog/2016/01/commit_message_change_lo ...
- dp和px,那些不得不吐槽的故事——Android平台图片文字元素单位浅析 (转)
一个优秀的手机软件,不仅要有精巧的功能,流畅的速度,让人赏心悦目的UI也往往是用户选择的重要理由.作为移动产品的PM,也需要了解一些在UI设计中的基本知识. 1. px和pt,一对好伙伴 在视觉设计中 ...
- Android中如何设置RadioButton在文字的右边,图标在左边
from:http://blog.csdn.net/sunnyfans/article/details/7901592?utm_source=tuicool&utm_medium=referr ...
随机推荐
- LeetCode(二)
实现Trie树 class TrieNode { public char val; public boolean isWord; public TrieNode[] children = new Tr ...
- 第二章 第二个spring-boot程序(转载)
本编博客转发自:http://www.cnblogs.com/java-zhao/p/5336369.html 上一节的代码是spring-boot的入门程序,也是官方文档上的一个程序.这一节会引入s ...
- [Ng]Angular应用点概览
1. 使用模块化写法. var app = angular.module('myApp', []); app.controller('TextController', function($scop ...
- SpringMVC与ajax相关知识练习与存档
参考文章(亲测有效): SpringMVC+ajax返回JSON串 jquery ajax例子返回值详解 AJAX $.ajax({url:路径,date:数据,}) //get请求(指定回调函数,参 ...
- 用函数datepart获取当前日期、周数、季度
用函数datepart处理就可以了,示例:select datepart(weekday,getdate()) as 周内的第几日select datepart(week,getdate()) as ...
- 数独求解 DFS && DLX
题目:Sudoku 题意:求解数独.从样例和结果来看应该是简单难度的数独 思路:DFS 设置3个数组,row[i][j] 判断第i行是否放了j数字,col[i][j] 判断第i列是否放了j数字.squ ...
- Floyd 求最短路(poj 1161)
Floyd-Warshall算法介绍: Floyd-Warshall算法的原理是动态规划. 设为从到的只以集合中的节点为中间节点的最短路径的长度. 若最短路径经过点k,则: 若最短路径不经过点k,则. ...
- SpringMVC中使用DWR
SpringMVC中使用DWR重点在其配置当中. 1. web.xml文件的配置 在DispatcherServlet中增加dwr的拦截来取代DwrServlet. 更改配置如下: <serv ...
- Hibernate映射问题之OneToOne【自己整理】
首先贴上一个MkYong的例子 stock.java package com.mkyong.stock; import javax.persistence.CascadeType; import ja ...
- 安装Tomcat服务器
一.首先,下载Tomcat,你可以直接百度Tomcat官网, 或者,直接在地址栏输入他的官网地址:http://tomcat.apache.org/,然后进入他的主页,在主页左侧可以找到Downloa ...