在设计中,我有一个文本字段,文本大小为 16,字符间距为 0.6
android:letterSpacing
但是,如果我为间距属性设置此值,TextView
将比设计时大得多。
那么,将sketch值转换为android值的方法是什么?
根据 Romain Guy 的说法,Android 使用“1 em = 字体大小”的定义,所以你只需这样做
setLetterSpacing(characterSpacing / textSize)
...只需确保这些值采用相同的单位(dp vs px)
如果 Sketch 提供了 Points 中的字母间距值,那么以下是转换:
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;
查看 android:textScaleX
根据您需要多少间距,这可能会有所帮助。这是唯一与 TextView 中的字母间距相关的事情。