Android尺寸单位

一、Android中支持的尺寸单位

单位表示 单位名称 单位说明
px 像素 屏幕上的真实像素表示
in 英尺 基于屏幕的物理尺寸表示
mm 毫米 基于屏幕的物理尺寸表示
pt 英尺的1/72
dp 和密度无关的像素 相对屏幕物理密度的抽象单位
sp 和精度无关的像素 类似于dp

二、dp与sp

在Android开发文档中,关于dp是这样一段话:

Density-independent Pixels - an abstract unit that is based on the physical density of the screen. These units are relative to a 160 dpi (dots per inch) screen, so 160dp is always one inchregardless of the screen density. The ratio of dp-to-pixel will change with the screen density, but not necessarily in direct proportion. You should use these units when specifying view dimensions in your layout, so the UI properly scales to render at the same actual size on different screens. (The compiler accepts both "dip" and "dp", though "dp" is more consistent with "sp".)

这里牵涉到一个dpi的概念,也就是一英寸屏幕里面有多少个像素点,这就是这里所谓的Density密度。dp的密度无关也就是排除各种屏幕dpi不同而导致的显示规格不同,sp是在dp的基础上还与scale无关,这里的scale应该是指的是屏幕大小,也就是平常所说的几寸几寸屏。

如果屏幕密度为160,这时dp和sp和px是一样的。1dp=1sp=1px,但如果使用px作单位,如果屏幕大小不变(假设还是3.2寸),而屏幕密度变成了320。那么原来TextView的宽度设成160px,在密度为320的3.2寸屏幕里看要比在密度为160的3.2寸屏幕上看短了一半。但如果设置成160dp或160sp的话。系统会自动将width属性值设置成320px的。也就是160 * 320 / 160。其中320 / 160可称为密度比例因子。

也就是说,如果使用dp和sp,系统会根据屏幕密度的变化自动进行转换。所以在我们的应用程序中,提倡使用sp、dp来适应各种不同的屏幕。

暂无评论
  • 1:请一针见血的评论。
  • 2:评论需要审核通过后才能显示。
  • 3:评论字数限制在1000字以内。
  • 当前字数:0
热门文章
推荐文章
随机文章
关于本站 - 广告服务 - 版权声明 - 联系我们 - 友情链接 - 网站地图 - 帮助中心