px、dip、dp和sp有什么区别?

问题描述:

测量单位 px、dip、dp 和 sp 之间有什么区别?

解决方案1:

与HuntsBot一起,探索全球自由职业机会–huntsbot.com

从 Android Developer Documentation:

px Pixels - 对应于屏幕上的实际像素。英寸 - 基于屏幕的物理尺寸。 1 英寸或 2.54 厘米 mm > 毫米 - 基于屏幕的物理尺寸。 pt > 点 - 基于屏幕物理尺寸的 1/72 英寸。 dp 或 dip > Density-independent Pixels - 一个基于屏幕物理密度的抽象单位。这些单位与 160 dpi 屏幕相关,因此 1 dp 是 160 dpi 屏幕上的一个像素。 dp与像素的比例会随着屏幕密度而变化,但不一定成正比。注意:编译器同时接受“dip”和“dp”,尽管“dp”与“sp”更一致。 sp > 可缩放像素或与缩放无关的像素 - 这类似于 dp 单位,但它也可以根据用户的字体大小偏好进行缩放。建议您在指定字体大小时使用此单位,以便根据屏幕密度和用户偏好进行调整。请注意,Android 文档与 sp 实际代表的含义不一致,一个文档说“与比例无关的像素”,另一个说“可缩放像素”。

从 Understanding Density Independence In Android:

密度桶 屏幕密度 物理尺寸 像素尺寸 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 = 120x120 像素 xhdpi 320 dpi 0.5 x 0.5 英寸 0.5 英寸 * 320 dpi = 160x160 像素 xxhdpi 480 dpi 0.5 x 0.5 英寸 0.5 英寸 * 480 dpi = 240x240 像素 xxxhdpi 640 dpi 0.5 x 0.5 英寸 0.5 英寸 *320 dpi = 3.5 x 0.5 英寸 0.5 英寸

单位 描述 每物理英寸的单位 密度独立?每个屏幕上的物理尺寸相同? px 像素变化 否 否 英寸 1 是 是 mm 毫米 25.4 是 是 pt 点 72 是 是 dp 与密度无关的像素 ~160 是 否 sp 与比例无关的像素 ~160 是 否

更多信息也可以在 Google Design Documentation 中找到。

huntsbot.com高效搞钱,一站式跟进超10+任务平台外包需求

解决方案2:

一个优秀的自由职业者,应该有对需求敏感和精准需求捕获的能力,而huntsbot.com提供了这个机会

几乎所有关于此的内容以及如何实现对不同尺寸和密度的多个屏幕的最佳支持都在此处得到了很好的记录:

支持多屏

屏幕尺寸 实际物理尺寸,以屏幕的对角线测量。为简单起见,Android 将所有实际屏幕尺寸分为四种通用尺寸:小、普通、大和超大。屏幕密度 屏幕物理区域内的像素数;通常称为 dpi(每英寸点数)。例如,与“正常”或“高”密度屏幕相比,“低”密度屏幕在给定物理区域内的像素较少。为简单起见,Android 将所有实际屏幕密度分为六种广义密度:低、中、高、超高、超超高和超超高。方向 从用户的角度看屏幕的方向。这是横向或纵向,这意味着屏幕的纵横比分别是宽的或高的。请注意,不仅不同的设备在默认情况下以不同的方向运行,而且当用户旋转设备时,方向可能会在运行时发生变化。

分辨率 屏幕上的物理像素总数。添加对多屏幕的支持时,应用程序不能直接使用分辨率;应用程序应该只关心屏幕尺寸和密度,由通用尺寸和密度组指定。

与密度无关的像素 (dp) 定义 UI 布局时应使用的虚拟像素单位,以与密度无关的方式表示布局尺寸或位置。与密度无关的像素相当于 160 dpi 屏幕上的一个物理像素,这是系统为“中等”密度屏幕假定的基线密度。在运行时,系统会根据使用中屏幕的实际密度,根据需要透明地处理 dp 单位的任何缩放。 dp 单位到屏幕像素的转换很简单:px = dp * (dpi / 160)。例如,在 240 dpi 的屏幕上,1 dp 等于 1.5 个物理像素。在定义应用程序的 UI 时,您应该始终使用 dp 单位,以确保您的 UI 在不同密度的屏幕上正确显示。

如果您真的想为不止一种类型的设备开发 Android 应用程序,您应该至少阅读一次屏幕支持开发文档。除此之外,了解具有特定屏幕配置的活动设备的实际数量总是一件好事。

屏幕尺寸和密度

解决方案3:

huntsbot.com高效搞钱,一站式跟进超10+任务平台外包需求

我将详细说明 dp 究竟是如何转换为 px 的:

如果在 mdpi 设备上运行,则 150 x 150 像素的图像将占用 150 * 150 dp 的屏幕空间。

如果在 hdpi 设备上运行,则 150 x 150 像素的图像将占用 100 * 100 dp 的屏幕空间。

如果在 xhdpi 设备上运行,150x150 像素的图像将占用 75 * 75 dp 的屏幕空间。

反过来说:假设您想向应用程序添加图像,并且需要它来填充 100 * 100 dp 控件。您需要为支持的屏幕尺寸创建不同尺寸的图像:

用于 mdpi 的 100 * 100 像素图像

hdpi 的 150 * 150 像素图像

xhdpi 的 200 * 200 像素图像

字体大小是如何表示的?在dp或sp?我有一个应用程序,文本在某些模式下显示得更大。所以它涉及到下一行或完全占据空间。如何将此字体大小设置为在android中显示为好

解决方案4:

huntsbot.com全球7大洲远程工作机会,探索不一样的工作方式

px - 像素 - 每个比例的点对应于屏幕上的实际像素。

i - 英寸 - 基于屏幕的物理尺寸。

mm - 毫米 - 基于屏幕的物理尺寸。

pt - 点 - 基于屏幕物理尺寸的 1/72 英寸。

dp - 与密度无关的像素 - 基于屏幕物理密度的抽象单位。这些单位与 160 dpi 屏幕相关,因此一个 dp 是 160 dpi 屏幕上的一个像素。 dp与像素的比例会随着屏幕密度而变化,但不一定成正比。注意:编译器同时接受 dip 和 dp,但 dp 与 sp 更一致。

sp - scalable pixels - 这类似于 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

解决方案5:

一个优秀的自由职业者,应该有对需求敏感和精准需求捕获的能力,而huntsbot.com提供了这个机会

此外,您应该清楚地了解以下概念:

屏幕尺寸:

实际物理尺寸,以屏幕的对角线测量。为简单起见,Android 将所有实际屏幕尺寸分为四种通用尺寸:小、普通、大和超大。

屏幕密度:

屏幕物理区域内的像素数;通常称为 dpi(每英寸点数)。例如,与“正常”或“高”密度屏幕相比,“低”密度屏幕在给定物理区域内的像素较少。为简单起见,Android 将所有实际屏幕密度分为四种广义密度:低、中、高和超高。

方向:

从用户的角度来看屏幕的方向。这是横向或纵向,这意味着屏幕的纵横比分别是宽的或高的。请注意,不仅不同的设备在默认情况下以不同的方向运行,而且当用户旋转设备时,方向可能会在运行时发生变化。

解析度:

屏幕上的物理像素总数。添加对多屏幕的支持时,应用程序不能直接使用分辨率;应用程序应该只关心屏幕尺寸和密度,由通用尺寸和密度组指定。

与密度无关的像素 (dp):

定义 UI 布局时应使用的虚拟像素单位,以与密度无关的方式表示布局尺寸或位置。与密度无关的像素相当于 160 dpi 屏幕上的一个物理像素,这是系统为“中等”密度屏幕假定的基线密度。在运行时,系统会根据使用中屏幕的实际密度,根据需要透明地处理 dp 单位的任何缩放。 dp 单位到屏幕像素的转换很简单:px = dp * (dpi / 160)。例如,在 240 dpi 的屏幕上,1 dp 等于 1.5 个物理像素。在定义应用程序的 UI 时,您应该始终使用 dp 单位,以确保您的 UI 在不同密度的屏幕上正确显示。

参考:Android developers site

解决方案6:

一个优秀的自由职业者,应该有对需求敏感和精准需求捕获的能力,而huntsbot.com提供了这个机会

dp 是 dip。将它用于所有内容(边距、填充等)。

仅将 sp 用于 {text-size}。

为了在不同的屏幕密度上获得相同的尺寸,Android 在运行时会将这些单位转换为像素,因此您无需进行复杂的数学运算。

查看 px、dp 和 sp 在不同屏幕尺寸上的区别。

https://i.stack.imgur.com/84sUp.png

来源:Android Programming: The Big Nerd Ranch Guide

解决方案7:

一个优秀的自由职业者,应该有对需求敏感和精准需求捕获的能力,而huntsbot.com提供了这个机会

定义

px 或 dot 是物理屏幕上的一个像素。

dpi 是物理屏幕上每英寸的像素数,代表显示器的密度。

Android 提供 alias names to several densities

ldpi(低)~120dpi

mdpi(中)~160dpi

hdpi (high) ~240dpi 2015 年的大多数设备都在这里

2015 年的大多数设备都在这里

xhdpi(超高)~320dpi Apple iPhone 4/5/6,Nexus 4

苹果 iPhone 4/5/6,Nexus 4

xxhdpi (extra-extra-high) ~480dpi Nexus 5

连结 5

xxxhdpi (extra-extra-extra-high) ~640dpi

dip 或 dp 是与密度无关的像素,即它们对应于更多或更少的像素,具体取决于物理密度。

1dp = 1px 在 mdpi 上

https://i.stack.imgur.com/fAucF.png

sp 或 sip 是与尺度无关的像素。在“设置”>“辅助功能”中打开“大文本”选项时,它们会被缩放

1sp = 1dp

1sp = 1.2dp 可访问大文本

用什么?

使用 sp 作为文本大小。将 dp 用于其他所有内容。

解决方案8:

保持自己快人一步,享受全网独家提供的一站式外包任务、远程工作、创意产品订阅服务–huntsbot.com

https://i.stack.imgur.com/DoAxa.png

它应该是 ppi 而不是 dpi

解决方案9:

与HuntsBot一起,探索全球自由职业机会–huntsbot.com

Source 1

Source 2

Source 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 Pixels - 对应于屏幕上的实际像素。不推荐使用此度量单位,因为实际表示可能因设备而异;每个设备每英寸的像素数可能不同,并且屏幕上可用的总像素数可能更多或更少。 mm 毫米 - 基于屏幕的物理尺寸。英寸 - 基于屏幕的物理尺寸。

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

与HuntsBot一起,探索全球自由职业机会–huntsbot.com

另外:这个答案的附加价值是什么?其他答案中似乎没有任何未提及的内容。

解决方案10:

huntsbot.com洞察每一个产品背后的需求与收益,从而捕获灵感

基本上 px 应用的唯一时间是一个 px,如果你想在屏幕上恰好有一个像素,就像在分隔线的情况下一样:

在 >160 dpi 上,您可能会得到 2-3 个像素,

在 >120 dpi 时,它四舍五入为 0。

解决方案11:

HuntsBot周刊–不定时分享成功产品案例,学习他们如何成功建立自己的副业–huntsbot.com

像素

像素 - 对应于屏幕上的实际像素。

dp 或倾角

Density-independent Pixels - 一个基于屏幕物理密度的抽象单位。这些单位与 160 dpi 屏幕相关,因此 1 dp 是 160 dpi 屏幕上的一个像素。

dp的使用:

密度独立性 - 当您的应用程序在不同密度的屏幕上显示时,它保留了用户界面元素的物理尺寸(从用户的角度来看),从而实现了“密度独立性”。 (ie) 图像在不同类型的屏幕中看起来应该是相同的尺寸(不是放大或缩小)。

sp

Scale-independent Pixels - 这类似于 dp 单位,但它也根据用户的字体大小偏好进行缩放。

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

原文链接:https://www.huntsbot.com/qa/eRey/what-is-the-difference-between-px-dip-dp-and-sp?lang=zh_CN

huntsbot.com聚合了超过10+全球外包任务平台的外包需求,寻找外包任务与机会变的简单与高效。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值