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)的更多相关文章

  1. Android textView 动态设置代码字号大小,支持单位选项 dp,sp or px

    setTextSize(TypedValue.COMPLEX_UNIT_PX,22); //22像素 setTextSize(TypedValue.COMPLEX_UNIT_SP,22); //22S ...

  2. Android 视觉规范

    各种分辨率下图片尺寸 工程师通常开发三套UI布局文件,所以设计师通常也要不同的需求处理2-3套切图. con Type Standard Asset Sizes (in Pixels), for Ge ...

  3. 前端编码规范(2)—— HTML 规范

    HTML 规范 文档类型 推荐使用 HTML5 的文档类型申明: <!DOCTYPE html>. (建议使用 text/html 格式的 HTML.避免使用 XHTML.XHTML 以及 ...

  4. Dojo初探之1:AMD规范,编写符合AMD规范(异步模块加载机制)的模块化JS(其中dojo采用1.11.2版本)

    一.AMD规范探索 1.AMD规范(即异步模块加载机制) 我们在接触js的时候,一般都是通过各种function来定义一些方法,让它们帮我们做一些事情,一个js可以包含很多个js,而这些functio ...

  5. Java代码编写规范(不是标准规范,自行整理,无须纠结)

    最近回过头来给以前的项目增加功能,发现之前写的注释非常不全,代码也非常的不整洁,有些地方写的''窝七八烂的,看着很不舒服:又恰好经理最近也经常跟我提起代码规范,我们就讨论了一下代码规范的重要性和必要性 ...

  6. Python 浅谈编程规范和软件开发目录规范的重要性

    最近参加了一个比赛,然后看到队友编程的代码,我觉得真的是觉得注释和命名规范的重要性了,因为几乎每个字符都要咨询他,用老师的话来说,这就是命名不规范的后续反应.所以此时的我意识到写一篇关于注释程序的重要 ...

  7. Commit message 的写法规范。本文介绍Angular 规范(

    Commit message 的写法规范.本文介绍Angular 规范( http://www.ruanyifeng.com/blog/2016/01/commit_message_change_lo ...

  8. dp和px,那些不得不吐槽的故事——Android平台图片文字元素单位浅析 (转)

    一个优秀的手机软件,不仅要有精巧的功能,流畅的速度,让人赏心悦目的UI也往往是用户选择的重要理由.作为移动产品的PM,也需要了解一些在UI设计中的基本知识. 1. px和pt,一对好伙伴 在视觉设计中 ...

  9. Android中如何设置RadioButton在文字的右边,图标在左边

    from:http://blog.csdn.net/sunnyfans/article/details/7901592?utm_source=tuicool&utm_medium=referr ...

随机推荐

  1. MYSQL存储过程:批量更新数据

    地区等级的信息储存在jsjh_district表. 要更新jsjh_goods_district表的district_level地区信息 DELIMITER $$ DROP PROCEDURE IF ...

  2. opencv写视频

    代码: #include<opencv2/opencv.hpp> using namespace cv; #include<string> using namespace st ...

  3. Js之Dom学习-三种获取页面元素的方式、事件、innerText和innerHTML的异同

    一.三种获取页面元素的方式: getElementById:通过id来获取 <body> <input type="text" value="请输入一个 ...

  4. C++矢量图形库系列(1)——矢量图形库乱谈(转)

    转自:http://blog.sina.com.cn/s/blog_4265e1760100lg03.html 本系列篇章的主要内容是讲解矢量图形库的编译.开发和使用.并不对他们周边的内容做过多的描述 ...

  5. 初识Android && 搭建Android开发环境

    搭建Android开发环境需要的工具: JDK(Java Development Kit) Eclipse Android Sdk(Software Development Kit) ADT (And ...

  6. Mysql --分区表(7)Key分区

    Key分区 按照Key进行分区非常类似于按照Hash进行分区,只不过Hash分区允许使用用户自定义的表达式,而Key分区不允许使用用户自定义的表达式,需要使用MySQL服务器提供的HASH函数;同时H ...

  7. Java中FileOutputStream和FileInputStream使用例子

    package a.ab; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.F ...

  8. Windows 8.1 应用再出发 - 磁贴的更新

    本篇和大家一起了解一下Windows 8.1 中磁贴的更新,我们来看看如何利用它做出更好的应用磁贴. 首先我们从展现形式上来对比一下Windows 8 与 Windows 8.1 中的磁贴: Wind ...

  9. iOS Swipe Tableviewcell(左右滑动出现按钮)

    1.背景 看到QQ的左右滑动Tableviewcell时可以出现多个菜单,觉得很高大上,因为没这种需求, 也只是需要一个删除按钮,这个系统已经帮我们实现了,只需要实现几个代理就可以,做出左划 出现删除 ...

  10. 安装了linux系统的设备上不了网怎么办

    玩了一阵子的树莓派,曾经计划将其作成一台小小无线路由,但是时间和精力关系始终未成功做成. 同时也有在进行一些arm开发板的学习,突然一天发现arm板直接插上网线不能是不能上网的,又想起之前玩树莓派的时 ...