文本总宽度 = 字体实际宽度 * 字数
字体实际宽度 = 字体初始宽度(letterWidth) + getTextSize() * 字体间距
//计算单个textview文本实际宽度
final float letterWidth = tv.getPaint().measureText("a", 0, 1) + 1;
//textview总宽度
float length = DissplayUtils.dp2px(this, 300f);
//设置的setLetterSpacing值
float space = (length / tv.length() - letterWidth) / tv.getTextSize();
//保留两位小数
BigDecimal bigDecimal = new BigDecimal(space);
float newspace = bigDecimal.setScale(2, BigDecimal.ROUND_DOWN).floatValue();
tv.setLetterSpacing(newspace);
网友评论