码迷,mamicode.com
首页 > 移动开发 > 详细

Android尺寸度量

时间:2015-08-26 17:23:11      阅读:253      评论:0      收藏:0      [点我收藏+]

标签:

ppi: 像素密度,pixels per inch(1inch=2.54cm),即每英寸屏幕所拥有的像素数。像素密度=√{(长度像素数^2+宽度像素数^2)}/ 屏幕尺寸。

dpi: dots per inch,每英寸点数,指印刷业中的打印精度。在Android官方开发指南中,与ppi含义相同,也表示每英寸的像素数。

resolution: 指手机屏幕水平和竖直方向的像素个数。例如FHD分辨率,即full high definition,也称1080P分辨率或成分辨率为1080*1920。

联系以上三个概念,物理尺寸5.0英寸分辨率为1920x1080的屏幕像素密度为441PPI,属于xxhdpi范围。

px: 物理像素,在分辨率高(即dpi大)的屏幕上显示较小。

dp: device independent pixels,早期也写作dip,密度无关像素。在不同dpi的屏幕上以不同的px显示。

sp: scale-independent pixels,是dp的一种,这种像素会受用户字体偏好设置的影响,一般用作字体的尺寸

dp、sp为抽象像素,Android 在运行时会自动将sp、dp的值转换为像素单位。

官方转换公式: pixels = dps * (ppi /160),系数为ppi/160,例如对于上述1080p的屏幕,px=dp*441/160,画一条320dp的横线,将占屏幕的882/1080

160dpi的屏幕上(即HVGA,由于一般像素都是正方形,所以一般长宽方向上的分辨率相同),dp到px的转化系数(像素密度)为1,此时1px=1dp=1sp。

注1:文字的尺寸一律用sp单位,视图的尺寸一律使用dp单位。

注2:在屏幕上画一条细的分隔线时(用dp和sp会模糊):<View layout_width="match_parent" layout_height="1px"/>

注3:android:layout_weight设置视图相对宽度:<android:layout_width="0dp" android:layout_weight="1"/>

注4:margin是边距,是指视图之间的间隔;padding是内边距,是指视图上的内容区域距其边界的距离

参考资料:

[1] http://stackoverflow.com/questions/2025282/difference-between-px-dp-dip-and-sp-in-android

[2] Android Programming: The Big Nerd Ranch Guide §8.4.2 Page133

[3] https://en.wikipedia.org/wiki/Dots_per_inch

[4] http://blog.csdn.net/zhaokaiqiang1992

[5] http://developer.android.com/guide/topics/resources/more-resources.html#Dimension

Android尺寸度量

标签:

原文地址:http://www.cnblogs.com/changxuyouqing/p/4760663.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!