关于 android:文本大小应使用 \\”sp\\” 而不是 \\”dp\\”

Should use "sp" instead of "dp" for text sizes

当我使用

android:textSizes="20dp"

在我的 textView 的 XML 中,我收到警告"应该使用 "sp" 而不是 "dp" 来表示文本大小。"

为什么不应该使用"dp"?什么是正确的方法?如何在不同的显示器上实现相同的文本大小?

相关讨论
  • sp 是相同的基本单位(与 dp 相同),但按用户首选的文本大小(它是与比例无关的像素)进行缩放,因此在定义文本大小时应使用此测量单位(但绝不用于布局大小)。支持不同的密度。
  • 我知道其中的区别,但我不明白为什么我不能使用 dp 作为字体大小。我的意思是我想在不同的屏幕上具有相同的文本大小,否则在大型显示器上字体会变得非常小。那我怎样才能使文本以相同的大小出现呢?
  • @Rotwang 警告"避免使用小于 12 sp:10sp 的尺寸"呢?
  • 我很惊讶没有人提到 sp 可能会导致不一致的 ui 设计,除非您对其进行非常严格的编码,例如框的高度不能固定在 dp 中,因为它的文本视图在 sp 中。
  • 谁知道用 AS 将所有 textSize dp 转换为 sp 的快速方法?
  • 我同意 100%。如果用户选择更大的字体大小,SP 可能会严重破坏您的布局。我宁愿显示所有内容,也不愿显示更大的字体但有很多截断...

您应该始终将 SP 用于字体,因为它尊重用户偏好。这是一个例子
让我们通过一个例子来理解它 -

带有 SP 和 DP 的文本

enter

更改设备文本设置(设置 -> 显示 -> 字体大小)

enter

现在重新打开应用程序并重新查看文本,您会看到使用 SP 的文本与 DP 的高度不同。

enter

相关讨论
  • 我投了反对票,因为"你应该永远"。例如,UX 团队强制开发人员对某些布局(尤其是平板电脑)使用固定的文本大小。该示例将是"只是平板电脑字体大小的两倍"。在这种情况下,dp 指标可以完美运行。
  • @Micha?DobiDobrzaski 你说的是对的,如果我们不希望字体大小受到用户在设置中设置的影响,我们可以选择 dp,但是我们再次限制了用户,(就像给他们是一个音乐文件,并限制他们只能以特定的音量播放,即使他们认为该文件最好以特定的音量播放)
  • 有明显的时间你应该使用 DP 来处理文本。一种看待它的方法是,对于较大的文本(例如标题),它作为设计的一部分被固定并且无法更改是合理的。例如,有某种带有客户徽标的闪屏和某种大文本的标语或营销标题(想想像书籍封面之类的东西)。 DP 是固定大小的,这真的很自然,也可以。它更像是"设计布局"。另一方面,对于用户必须阅读的任何"阅读"文本,将其设为 SP 非常棒。

您可以使用 sp 和 dp。如您所知,在 Android 设置中,您可以更改文本大小(设置 -> 我的设备 -> 显示 -> 字体大小)。在更改设置中的字体大小后,sp 中的所有 textView 都会更改,dp - 不会更改

相关讨论
  • PT呢?

你可以同时使用

sp 字体大小
dp 其他一切。

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

sp
Scale-independent Pixels - 这就像 dp 单位,但它也被用户的字体大小偏好缩放。建议您在指定字体大小时使用此单位,以便根据屏幕密度和用户偏好进行调整。

有关更多信息,请参阅 Android 中 px、dp、dip 和 sp 的区别?


正如@GiruBhai 所分享的,使用 sp 而不是 dp 更方便文本大小,因为它可以根据用户的喜好进行更改 - 与 dp 不同。这可能更好地满足您的用户需求。

更多信息。 : Android 中的尺寸

来源:developer.android.com


以上是关于 android:文本大小应使用 \\”sp\\” 而不是 \\”dp\\”的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>