如何从草图值计算 TextView 的 letterSpacing?

How to calculate letterSpacing for TextView from sketch values?

在设计中我有一个文本字段,文本大小为 16,字符间距为 0.6

但是,如果我为 TextViewandroid:letterSpacing 属性设置此值,间距将比设计时大得多。

那么,草图值转换成android值的方法是什么?

查看 android:textScaleX

这可能会有所帮助,具体取决于您需要多少间距。这是唯一与 TextView 中的字母间距相关的事情。

根据 Romain Guy 的说法,Android 使用“1 em = 字体大小”定义,因此您只需

setLetterSpacing(characterSpacing / textSize)

...只需确保这些值使用相同的单位(dp 与 px)

如果Sketch提供了点数的字母间距值,则换算如下:

float textSizePx = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP,  textSizeInSp, displayMetrics);
float letterSpacingPx = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_PT,  sketchLetterSpacing, displayMetrics); 
float androidLetterSpacing = letterSpacingPx / textSizePx
return androidLetterSpacing;