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

时间:2016-08-23 12:17:09

标签: android textview sketch-3

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

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

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

4 个答案:

答案 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中唯一与字母间距有关的东西。