android中的单位
首先介绍一下 dp 和 sp , dp 也就是 dip ,这个和 sp 基本类似。如果设置表示长度、高度等属性时可以使用 dp 或 sp,但如果设置字体,需要使用 sp , dp 是与密度无关, sp 除了与密度无关外,还与 scale 无关,如果屏幕密度为 160 ,这时 dp 和 sp 和 px 是一样的。 1dp=1sp=1px ,但如果使用 px 作单位,如果屏幕大小不变(假设还是 3.2 寸),而屏幕密度变成了 320 。那么原来 TextView 的宽度设成 160px ,在密度为 320 的 3.2 寸屏幕里看要比在密度为 160 的 3.2 寸屏幕上看短了一半。
下面看一下其他单位的含义
px :表示屏幕实际的象素。例如, 320*480 的屏幕在横向有 320 个象素,在纵向有 480 个象素。
in :表示英寸,是屏幕的物理尺寸。每英寸等于 2.54 厘米。例如,形容手机屏幕大小,经常说, 3.2 (英)寸、 3.5 (英)寸、 4 (英)寸就是指这个单位。这些尺寸是屏幕的对角线长度。如果手机的屏幕是 3.2 英寸,表示手机的屏幕(可视区域)对角线长度是 3.2*2.54 = 8.128 厘米。
dpi是像素密度,指的是在系统软件上指定的单位尺寸的像素数量,比如dpi等于160,则表示一单位尺寸的像素数量是160个,它往往是写在系统出厂配置文件的一个固定值
dp指的是设备独立像素,以dp为尺寸单位的控件,在不同分辨率和尺寸的手机上代表了不同的真实像素,px = dp(dpi/160)
ScreenMatch
ScreenMatch 可以帮助我们以设计图最小宽度(单位为 dp)作为基准值,生成所有设备对应的 dimens.xml 文件
使用步骤:
1.在 Android Studio 中安装 ScreenMatch 插件
2.修改screenMatch.properties文件
base_dp=360:最小宽度基准值
match_dp= 默认情况下会生成如下值的 dimens.xml 文件,
ignore_dp= 忽略不需要适配的最小宽度值
3.选择默认的dimens.xml文件,右键选择Screen Match,生成不同的文件。