16

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

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

那么,将sketch值转换为android值的方法是什么?

4

3 回答 3

30

根据 Romain Guy 的说法,Android 使用“1 em = 字体大小”的定义,所以你只需这样做

setLetterSpacing(characterSpacing / textSize)

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

于 2016-12-01T23:54:52.937 回答
2

如果 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;
于 2018-05-02T00:02:23.943 回答
-2

查看 android:textScaleX

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

于 2016-11-22T12:19:35.283 回答