在设计中,我有一个文本字段,文本大小为16,字符间距为0.6
但是,如果我为android:letterSpacing
TextView
属性设置此值,则间距将比设计中的大得多。
那么,将草图值转换为android值的方法是什么?
答案 0 :(得分:14)
根据Romain Guy的说法,Android使用“1 em = font size”定义,所以你只需要
setLetterSpacing(characterSpacing / textSize)
...只需确保这些值在同一单位(dp vs px)
答案 1 :(得分:1)
如果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;
答案 2 :(得分:-1)
我现在暂时没有更正答案,但我只使用草图值的1/10作为android:letterSpacing
,它看起来一定是。
答案 3 :(得分:-1)
查看android:textScaleX
根据您需要的间距,这可能会有所帮助。这是TextView中唯一与字母间距有关的东西。