android测量单位有什么区别?
- PX
- 蘸
- DP
- SP
android测量单位有什么区别?
来自 Android开发人员文档:
PX
像素 - 对应于屏幕上的实际像素。
在
英寸 - 基于屏幕的物理尺寸。
1英寸= 2.54厘米
毫米
毫米 - 基于屏幕的物理尺寸。
PT
点 - 基于屏幕物理尺寸的1/72英寸。
DP 要么 蘸
密度独立像素 - 基于屏幕物理密度的抽象单位。这些单位相对于160 dpi屏幕,所以一个dp是160 dpi屏幕上的一个像素。比例 dp-to-pixel将随屏幕密度而变化,但不一定如此 按比例分配。注意:编译器同时接受“dip”和 “dp”,尽管“dp”与“sp”更为一致。
SP
规模独立像素 - 这就像dp单位,但也可以通过用户的字体大小首选项进行缩放。建议你 指定字体大小时使用此单位,因此将对其进行调整 屏幕密度和用户偏好。
+----------------+----------------+---------------+-------------------------------+
| Density Bucket | Screen Density | Physical Size | Pixel Size |
+----------------+----------------+---------------+-------------------------------+
| ldpi | 120 dpi | 0.5 x 0.5 in | 0.5 in * 120 dpi = 60x60 px |
+----------------+----------------+---------------+-------------------------------+
| mdpi | 160 dpi | 0.5 x 0.5 in | 0.5 in * 160 dpi = 80x80 px |
+----------------+----------------+---------------+-------------------------------+
| hdpi | 240 dpi | 0.5 x 0.5 in | 0.5 in * 240 dpi = 120x120 px |
+----------------+----------------+---------------+-------------------------------+
| xhdpi | 320 dpi | 0.5 x 0.5 in | 0.5 in * 320 dpi = 160x160 px |
+----------------+----------------+---------------+-------------------------------+
| xxhdpi | 480 dpi | 0.5 x 0.5 in | 0.5 in * 480 dpi = 240x240 px |
+----------------+----------------+---------------+-------------------------------+
| xxxhdpi | 640 dpi | 0.5 x 0.5 in | 0.5 in * 640 dpi = 320x320 px |
+----------------+----------------+---------------+-------------------------------+
+---------+-------------+---------------+-------------+--------------------+
| Unit | Description | Units Per | Density | Same Physical Size |
| | | Physical Inch | Independent | On Every Screen |
+---------+-------------+---------------+-------------+--------------------+
| px | Pixels | Varies | No | No |
+---------+-------------+---------------+-------------+--------------------+
| in | Inches | 1 | Yes | Yes |
+---------+-------------+---------------+-------------+--------------------+
| mm | Millimeters | 25.4 | Yes | Yes |
+---------+-------------+---------------+-------------+--------------------+
| pt | Points | 72 | Yes | Yes |
+---------+-------------+---------------+-------------+--------------------+
| dp | Density | ~160 | Yes | No |
| | Independent | | | |
| | Pixels | | | |
+---------+-------------+---------------+-------------+--------------------+
| sp | Scale | ~160 | Yes | No |
| | Independent | | | |
| | Pixels | | | |
+---------+-------------+---------------+-------------+--------------------+
更多信息也可以在 Google设计文档。
在真实设备上计算尺寸 这个 应用程序可以使用。
几乎所有关于此以及如何获得对具有不同尺寸和密度的多个屏幕的最佳支持在这里都有很好的记录:
屏幕尺寸
实际物理尺寸,以屏幕对角线测量。 为简单起见,Android将所有实际屏幕尺寸分为四个 广义尺寸:小尺寸,普通尺寸,大尺寸和超大尺寸。屏幕密度
物理区域内的像素数量 屏幕;通常称为dpi(每英寸点数)。例如,a “低”密度屏幕在给定物理区域内具有较少像素, 与“正常”或“高”密度屏幕相比。为简单起见 Android将所有实际屏幕密度分为六个广义 密度:低,中,高,超高,超高,和 超特超高。方向
从用户的角度来看屏幕的方向 视图。这是横向或纵向,意味着屏幕的 长宽比分别为宽或高。请注意不要 只有不同的设备才能在不同的方向上运行 默认情况下,但方向可以在用户运行时更改 旋转设备。解析度
物理像素总数 一个屏幕。在添加对多个屏幕的支持时,应用程序可以 不能直接解决问题;应该关注申请 只有屏幕尺寸和密度,由广义指定 大小和密度组。密度无关像素(dp)
一个虚拟的 在定义UI布局时应该使用的像素单元来表达 布局尺寸或位置以密度无关的方式。 与密度无关的像素相当于160上的一个物理像素 dpi屏幕,这是系统为a假定的基线密度 “中等”密度屏幕。在运行时,系统透明地处理 必要时,根据实际密度对dp单位进行任何缩放 正在使用的屏幕dp单位到屏幕像素的转换是 简单:px = dp * (dpi / 160)
。 例如,在240 dpi屏幕上,1 dp 等于1.5物理像素。你应该总是使用dp单位 定义应用程序的UI,以确保正确显示您的UI 不同密度的屏幕。
如果您对为多种类型的设备开发Android应用程序非常认真,那么您应该至少阅读一次屏幕支持开发文档。除此之外,了解具有特定屏幕配置的活动设备的实际数量始终是一件好事。
我将详细说明dp如何转换为px:
150 x 150 px
图像将占用 150 * 150 dp
屏幕空间。150 x 150 px
图像将占用 100 * 100 dp
屏幕空间。150x150 px
图像将占用 75 * 75 dp
屏幕空间。反过来说:你想要在你的应用程序中添加一个图像,你需要它来填充一个 100 * 100 dp
控制。您需要为支持的屏幕尺寸创建不同尺寸的图像:
100 * 100 px
mdpi的图像150 * 150 px
hdpi的图像200 * 200 px
图像为xhdpiPX 像素 - 每个刻度点对应于屏幕上的实际像素。
在 英寸 - 基于屏幕的物理尺寸。
毫米 毫米 - 基于屏幕的物理尺寸。
PT 点 - 基于屏幕物理尺寸的1/72英寸。
DP
密度 - 独立像素 - 基于屏幕物理密度的抽象单元。
这些单位相对于160 dpi的屏幕,所以一个 dp
是160 dpi屏幕上的一个像素。 dp与像素的比率将随屏幕密度而变化,
但不一定是正比例。
注意:编译器同时接受这两个 dip
和 dp
但是 dp
更符合 sp
。
SP
- 与尺度无关的像素 - 这就像 dp
单元,
但它也会根据用户的字体大小首选项进行缩放。
建议您在指定字体大小时使用此单位,
因此,他们将根据屏幕密度和用户的偏好进行调整。
以两个尺寸相同但屏幕密度为160 dpi(每英寸点数,即每英寸像素数)的屏幕为例,另一个屏幕为240 dpi。
Lower resolution screen Higher resolution, same size
Physical Width 1.5 inches 1.5 inches
Dots Per Inch (“dpi”) 160 240
Pixels (=width*dpi) 240 360
Density (factor of baseline 160) 1.0 1.5
Density-independent Pixels 240 240
(“dip” or “dp” or “dps”)
Scale-independent pixels
(“sip” or “sp”) Depends on user font size settings same
此外,您应该清楚地了解以下概念:
屏幕尺寸:
实际物理尺寸,以屏幕对角线测量。为简单起见,Android将所有实际屏幕尺寸分组 四种广义尺寸:小型,普通型,大型和超大型。
屏幕密度:
屏幕物理区域内的像素数量;通常称为dpi(每英寸点数)。例如,a “低”密度屏幕在给定物理区域内具有较少像素, 与“正常”或“高”密度屏幕相比。为简单起见 Android将所有实际屏幕密度分为四个广义 密度:低,中,高和超高。
方向:
从用户的角度看屏幕的方向。这是风景或肖像,意思是 屏幕的宽高比分别为宽或高。意识到 这不仅使不同的设备在不同的方向上运行 默认情况下,但在用户运行时,方向可以更改 旋转设备。
解析度:
屏幕上的物理像素总数。添加对多个屏幕的支持时,应用程序无法直接运行 决议;应用程序应仅关注屏幕 尺寸和密度,由广义尺寸和密度规定 组。
密度无关像素(dp):
定义UI布局时应使用的虚拟像素单元,用于表示布局尺寸或 以与密度无关的方式定位。与密度无关的像素 相当于160 dpi屏幕上的一个物理像素,即 系统为“中等”密度屏幕假定的基线密度。 在运行时,系统透明地处理dp的任何缩放 必要时,根据使用中屏幕的实际密度单位。 dp单位到屏幕像素的转换很简单:px = dp *(dpi / 160)。例如,在240 dpi屏幕上,1 dp等于1.5物理 像素。在定义时,应始终使用dp单位 应用程序的UI,以确保在屏幕上正确显示您的UI 不同的密度。
参考: Android开发者网站
dp
是 dip
。用于所有事情(边距,填充等)。
使用 sp
仅适用于{text-size}。
看看之间的区别 px
, dp
和 sp
在不同的屏幕尺寸上。
我已经计算了下面的公式来进行转换 dpi
至 dp
和 sp
PX 或点是一个 像素 在物理屏幕上。
DPI 是物理屏幕上每英寸的像素数,表示显示器的密度。
Android给出了 别名到几个密度
蘸 要么 DP 是 密度不相关的像素,即它们根据物理密度对应于更多或更少的像素。
SP 要么 啜 是一个 与尺度无关的像素。它们在缩放时缩放 大文字 选项已打开 设置 > 无障碍
使用 SP 对于文字大小。
使用 DP 其他一切。
来源3:(来自3的数据如下)
这些是以XML定义的维度值。指定了维度 用一个数字后跟一个度量单位。例如:10px,2in, 5SP。 Android支持以下度量单位:
DP
密度无关的像素 - 一个基于的抽象单位 屏幕的物理密度。这些单位相对于160 dpi (每英寸点数)屏幕,1dp大致等于1px。什么时候 在更高密度的屏幕上运行,用于绘制的像素数 1dp按照适合屏幕dpi的系数放大。 同样,在较低密度屏幕上时,使用的像素数 对于1dp按比例缩小。 dp与像素的比率将随之变化 屏幕密度,但不一定是正比例。使用dp 单位(而不是px单位)是制作视图的简单解决方案 布局中的尺寸可以针对不同的屏幕正确调整大小 密度。换句话说,它为现实世界提供了一致性 不同设备上UI元素的大小。
SP
与比例无关的像素 - 这就像dp单位,但它也是 按用户的字体大小首选项缩放。建议你使用 指定字体大小时,此单位将被调整为 屏幕密度和用户的偏好。
PT
点数 - 基于屏幕物理尺寸的1/72英寸。
PX
像素 - 对应屏幕上的实际像素。这个单位 不推荐使用度量,因为实际表示可能会有所不同 跨设备;每个设备可能具有不同的像素数 英寸可能在屏幕上有更多或更少的总像素。
毫米
毫米 - 基于屏幕的物理尺寸。
在
英寸 - 基于屏幕的物理尺寸。
注意: 维度是使用name属性中提供的值(而不是XML文件的名称)引用的简单资源。因此,您可以将维度资源与一个XML文件中的其他简单资源组合在一个元素下。
基本上px应用的唯一时间是一个px,如果你想在屏幕上只有一个像素,就像分频器一样:
在> 160 dpi时,您可能会得到2-3个像素,
在> 120 dpi时,它将舍入为0。
PX
像素 - 对应于屏幕上的实际像素。
dp或dip
密度无关像素 - 基于屏幕物理密度的抽象单元。这些单位相对于160 dpi的屏幕,因此一个dp是160 dpi屏幕上的一个像素。
使用dp:
密度独立性 - 当您的应用程序在不同密度的屏幕上显示时,保留用户界面元素的物理大小(从用户的角度来看),可实现“密度独立性”。 (即)图像在不同类型的屏幕中看起来应该相同(不放大或缩小)。
SP
与比例无关的像素 - 这与dp单位类似,但它也可以通过用户的字体大小首选项进行缩放。
http://developer.android.com/guide/topics/resources/more-resources.html#Dimension