如何从草图值计算 TextView 的 letterSpacing?
How to calculate letterSpacing for TextView from sketch values?
在设计中我有一个文本字段,文本大小为 16,字符间距为 0.6
但是,如果我为 TextView
的 android: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;
在设计中我有一个文本字段,文本大小为 16,字符间距为 0.6
但是,如果我为 TextView
的 android: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;