怎么把SP转换成EM?

时间:2018-08-09 07:38:32

标签: android textview

在API 21中,引入了setLetterSpacing(float)。问题是,参数以 em 为单位。我与之合作的许多应用图形设计师都使用 sp 来测量字母间距。所以如果给我

  

字母间距:1.6sp

我通常最终会尝试一些浮点数,这些浮点数将导致与设计器的浮点数极为相似。简而言之,它不是像素完美的。

您知道从SP转换为EM的更好方法吗?谢谢!

3 个答案:

答案 0 :(得分:1)

我相信sp和em具有不同的用途-sp用于绝对调整文本大小,而em用于相对大小调整。我的猜测是em字母间距是文本大小的几倍,因此,如果您知道文本大小和所需的间距,则等式为spacing_em = spacing_sp / text_size_sp

这只是一个猜测,因此请对其进行测试,如果答案错误,我将删除答案。

答案 1 :(得分:1)

基于android documentation关于尺寸 SP 的行为与 DP 相似,只是字体大小。根据屏幕尺寸和分辨率,转换可能会导致不一致,但是这里的公式I found

sp * 0.0624 = em

答案 2 :(得分:0)

Frandall已经提供了答案,您可以在下面的链接中使用简单的 sp-em转换器

https://chrisdavies.github.io/sp-to-em/

将sp转换为em的公式为: sp * 0.0624 = em

轻微扩展的典型值将在 0.05

左右