Android M及更低版本中的线宽跨度
我想用可配置的行空间向textview添加多个span。我使用android中定义的LineHeightSpan类。但它在安卓M和更低版本中的表现似乎有所不同 下面是Android较低版本的结果 这就是安卓M中的情况 下面是我如何在代码中实现的: 这是我对LineHeightSpan的实现:Android M及更低版本中的线宽跨度,android,android-6.0-marshmallow,spannablestringbuilder,Android,Android 6.0 Marshmallow,Spannablestringbuilder,我想用可配置的行空间向textview添加多个span。我使用android中定义的LineHeightSpan类。但它在安卓M和更低版本中的表现似乎有所不同 下面是Android较低版本的结果 这就是安卓M中的情况 下面是我如何在代码中实现的: 这是我对LineHeightSpan的实现: public class VerticalMarginSpan implements LineHeightSpan { private final int value; public
public class VerticalMarginSpan implements LineHeightSpan {
private final int value;
public VerticalMarginSpan(int value) {
this.value = value;
}
@Override
public void chooseHeight(CharSequence text, int start, int end, int spanstartv, int v,
Paint.FontMetricsInt fm) {
fm.ascent -= value / 2;
fm.descent += (value / 2);
}
}
我如何使用它:
SpannableStringBuilder builder = new SpannableStringBuilder(tempStr);
builder.setSpan(
new VerticalMarginSpan(lineSpace),
0,
tempStr.length(),
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
txt.setText(builder);
如何解决此问题?如果您使用的是
棉花糖v6.0
,恐怕您在这种情况下无法执行任何操作,因为它报告了错误。您必须将设备升级到v6.0.1
,因为它在该版本中已被修复,或者有条件地从棉花糖6.0中删除您的逻辑
编辑:更多参考我在Android M中解决了这个问题,在textview中添加了字体间距,而不是应用行高span。你节省了我的时间。非常感谢。