我们为什么要在Android中使用sp作为字体大小?

Vig*_*ran 134 user-interface android

可能重复:
android中px,dp,dip和sp的差异

我是Android新手,我正在尝试本教程

在该教程中,他们使用单位"sp"表示textSize属性,使用"dp"表示其他属性.

请告诉我sp与sp不同?

ina*_*ruk 237

dp具有恒定比过渡到px:dp = px * ratio.在ratio任何特定设备上永远不会改变的地方.

sp(缩放比例)具有可扩展比率:sp = px * ratio * scale.凡ratio永远不会改变,但scale用户配置.这scale可以由需要更大字体的人使用,例如,更舒适地使用设备.

  • 这感觉不对,为什么我们的布局基于`dp`,但是在布局中呈现的所有文本都缩放到用户的`sp`设置?如果文本变大,那么包含的视图是否也应该增长以容纳它们? (25认同)
  • 所以,简化:`sp = dp*scale` (13认同)
  • @chakrit您也可以使用`sp`来构建布局. (3认同)
  • @chakrit不一定.如果您的视图变大,应用程序的布局将会有所不同,从而引发难题.意见应该重叠吗?是否应该取代另一个?等等. (3认同)
  • @chakrit即使布局使用dp,它们仍然能够容忍文本在某种程度上变大,否则这是糟糕的设计.比如说,如果文本标签的宽度受到限制,它仍然可以在高度上增长.如果它在两者中都受到限制,那么当文本变大时,例如翻译成另一种语言时,您可能会遇到问题. (3认同)

Dav*_*son 8

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

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