【发布时间】:2014-11-04 17:33:46
【问题描述】:
正如问题所示,我正在处理TextView,它将使用SpannableStringBuilder 显示格式化文本。它有多个段落,我想知道使用一些内置跨度设置段落之间的间距的最简单(或至少最不复杂)的方法是什么。这可能吗?或者我是否需要为此构建一个自定义跨度类?
【问题讨论】:
标签: android textview spannablestring spannable
正如问题所示,我正在处理TextView,它将使用SpannableStringBuilder 显示格式化文本。它有多个段落,我想知道使用一些内置跨度设置段落之间的间距的最简单(或至少最不复杂)的方法是什么。这可能吗?或者我是否需要为此构建一个自定义跨度类?
【问题讨论】:
标签: android textview spannablestring spannable
实现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。
【讨论】:
ILineHeightSpan 的实现,我会爱上的。