在API 21中,引入了setLetterSpacing(float)
。问题是,参数以 em 为单位。我与之合作的许多应用图形设计师都使用 sp 来测量字母间距。所以如果给我
字母间距:1.6sp
我通常最终会尝试一些浮点数,这些浮点数将导致与设计器的浮点数极为相似。简而言之,它不是像素完美的。
您知道从SP转换为EM的更好方法吗?谢谢!
答案 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
左右