【问题标题】:Why should we use sp for font sizes in Android? [duplicate]为什么我们应该在 Android 中使用 sp 作为字体大小? [复制]
【发布时间】:2011-10-29 19:00:00
【问题描述】:

可能重复:
Difference of px, dp, dip and sp in android

我是 Android 新手,我正在尝试 this tutorial

在那篇教程中,他们使用单位“sp”表示 textSize 属性,使用“dp”表示其他属性。

请告诉我 sp 与 dp 有何不同?

【问题讨论】:

    标签: android user-interface


    【解决方案1】:

    dp 具有恒定比率转换到pxdp = px * ratioratio 在任何特定设备上都不会改变。

    sp(s 表示缩放)具有可缩放比率:sp = px * ratio * scale。其中ratio 永远不会改变,但scale 是用户可配置的。这个scale 可供需要更大字体的人使用,例如,为了更舒适地使用设备。

    【讨论】:

    • 这感觉不对,为什么我们的布局是基于dp,但在该布局内呈现的所有文本都缩放到用户的sp 设置?如果文本变大,包含视图不应该也增长以适应它们吗?
    • 所以,为了简化:sp = dp * scale
    • @chakrit 你也可以使用sp 来构建你的布局。
    • @chakrit 不一定。如果您的视图变大,您的应用程序的布局会有所不同,这会引发一些难题。视图应该重叠吗?一个人应该取代另一个人吗?等等。
    • @chakrit 即使布局使用 dp,它们仍然应该能够在一定程度上容忍文本变大,否则这是糟糕的设计。比如说,如果文本标签的宽度受到限制,它仍然可以增加高度。如果两者都受到限制,那么当文本变大时,例如翻译成另一种语言时,您可能会遇到问题。
    【解决方案2】:

    Sp 独立于设备的正常字体大小进行缩放。 http://developer.android.com/guide/practices/screens_support.html

    同样,您应该更喜欢 sp(与比例无关的像素)来定义文本大小。 sp 缩放因子取决于用户设置,系统缩放大小与 dp 相同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-15
      • 1970-01-01
      • 2012-11-11
      • 1970-01-01
      • 2018-01-15
      • 2014-07-21
      • 2014-12-23
      • 1970-01-01
      相关资源
      最近更新 更多