正如问题所示,我正在开发一个TextView
,它将使用SpannableStringBuilder
显示格式化文本。它有多个段落,我想知道使用内置跨度设置段落间距的最简单(或至少最不复杂)方法是什么。这可能吗?还是需要我为此构建一个自定义跨度类?
实现LineHeightSpan
并覆盖chooseHeight
方法,如下所示
@Override
public void chooseHeight(CharSequence text, int start, int end,
int spanstartv, int v, FontMetricsInt fm) {
Spanned spanned = (Spanned) text;
int st = spanned.getSpanStart(this);
int en = spanned.getSpanEnd(this);
if (start == st) {
fm.ascent -= TOP_SPACING;
fm.top -= TOP_SPACING;
}
if (end == en) {
fm.descent += BOTTOM_SPACING;
fm.bottom += BOTTOM_SPACING;
}
}
不要忘记在每段文字的末尾添加n
。