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


当前回答

由官方文档复制的答案所列的 dp 和 sp 单元之间的差异可以通过更改“设置”>“可用性”>“长文本”选项在运行时看到。

大文本选项使文本变成1.3倍。

private static final float LARGE_FONT_SCALE = 1.3f;

这可能当然是供应商依赖的,因为它在包 / 应用程序 / 设置。

其他回答

计算像素密度

密度独立性

屏幕像素密度和分辨率取决于平台,设备独立的像素和可扩展的像素是提供一个灵活的方式,以适应整个平台的设计。

计算像素密度 匹配英寸的像素数量被称为像素密度. 高密度屏幕每英寸比低密度的像素多。

密度独立的像素,写作为dp(发音为“dips”),是灵活的单位,规模在任何屏幕上均匀的尺寸。

低密度屏幕显示与密度独立高密度屏幕显示与密度独立

sp:尺寸独立像素

您应该使用它与文本,因为它是根据用户在其设备中使用的字体大小自动规模。

px:像素或图像元素是屏幕上的单点

px = 指屏幕上的像素可用于像素计算 px = dp * (dpi / 160) 可用于 dip = 密度独立的像素相当于 dp sp = 只能用于文本

dp-to-pixel 比例与屏幕密度相匹配,但不一定是直接比例。

注意:编辑器接受“dip”和“dp”,尽管“dp”与“sp”更一致。

尺寸独立的Pixels - 这类似于dp单元,但它也按用户的字体大小偏好进行尺寸。

我只会使用DP。

有很多关于使用“sp”字体尺寸的谈话,虽然我欣赏这一点,我不认为这是从设计观点做正确的事情,你可以结束打破你的设计,如果用户有一些有趣的字体尺寸的选择,用户将最终责怪应用程序,而不是自己的生活选择。

此外,如果你在160dpi平板电脑上使用 sp-font 应用程序,你会发现一切都在扩展......但你的字体,这在比较中会看起来很小。

虽然“sp”字体的想法有一个好心,但这是一个糟糕的想法。