测量单位 px、dip、dp 和 sp 的区别是什么?


当前回答

基本上,唯一适用的 px 时间是 1 px,如果您想要屏幕上的一个像素,就像在分配器的情况下一样:

在 > 160 dpi 上,您可以获得 2-3 像素,

在 > 120 dpi 中,它旋转到 0.

其他回答

屏幕大小:

对于简单性,Android将所有实际屏幕大小组成四个通用大小:小、正常、大、超大。

方向:

当添加多个屏幕支持时,应用程序不直接与分辨率工作;应用程序应仅涉及屏幕大小和密度,如通用大小和密度组所规定的。

一个虚拟像素单位,你应该在定义UI布局时使用,以以密度独立的方式表达布局尺寸或位置。 密度独立的像素相当于160dpi屏幕上的一个物理像素,这是系统对“中间”密度屏幕所承担的基密度。

参考:Android开发者网站

来源1

来源2

源3(源3的数据如下)

这些是尺寸值定义在XML. 一个尺寸是指一个数字跟随一个尺寸单位. 例如: 10px, 2in, 5sp. 以下尺寸单位是由Android支持:dp 密度独立的像素 - 一个抽象单位,基于屏幕的物理密度. 这些单位是相对的160dpi(点每英寸)屏幕,在其中1dp是相当于1px

注意: 一个尺寸是一个简单的资源,使用在名称属性中提供的值(而不是 XML 文件的名称)。 因此,您可以在一个 XML 文件中将尺寸资源与其他简单的资源相结合,在一个元素下。

我将详细介绍如何准确地将 dp 转换为 px:

如果在 mdpi 设备上运行,150 x 150 px 图像将占屏幕空间的 150 * 150 dp. 如果在 hdpi 设备上运行,150 x 150 px 图像将占屏幕空间的 100 * 100 dp. 如果在 xhdpi 设备上运行,150 x 150 px 图像将占屏幕空间的 75 * 75 dp.

相反的方式:说,你想添加一个图像到你的应用程序,你需要它填写一个100 * 100dp控制。

100 * 100 px 图像为 mdpi 150 * 150 px 图像为 hdpi 200 * 200 px 图像为 xhdpi

sp = 尺寸独立像素

dpi = 密度像素

sp 接收设备的文本大小,而 dp 接收设备密度标准(不会在设备中改变) 说 100sp 文本可以占用屏幕的 80% 或屏幕的 100% 取决于设备中设置的字体大小

使用 sp 和 dp 为 UX 考虑的文本大小。

此外,请注意,人们在手机上使用自定义字体,因此缺乏字体可能会导致空间和所有问题。 说文本大小12sp为自定义字体可能需要一些比默认字体额外的像素。

任何与文本和外观的尺寸相关的东西都必须使用 sp 或 pt. 因此,任何与控制器、布局等尺寸相关的东西都必须使用 dp。

您可以在其位置使用 dp 和 dip。