TextView中使用富文本
文章目录TextView中使用富文本1.Html.fronHtml2.SpannableString2.1 .setSpan()方法2.2 可设置的格式
1.Html.fronHtml
布局:
代码:
val str = "Hello World!"
test_text_view.text=Html.fromHtml(str, Html.FROM_HTML_MODE_LEGACY)
效果:
其他:
public static Spanned fromHtml(String source, int flags) {
return fromHtml(source, flags, null, null);
}
实际上,
fromHtml返回的是一个
Spanned类型。
2.SpannableString
等价实现上述效果的代码:
val spannableString = SpannableString("Hello World!")
val colorSpan = ForegroundColorSpan(Color.BLUE)
spannableString.setSpan(colorSpan,6,12, Spanned.SPAN_INCLUSIVE_INCLUSIVE)
test_text_view.text = spannableString
2.1 .setSpan()方法
setSpan(Object what, int start, int end, int flags)
what:设置的格式。
start:字符串起始下标。
end:字符串结束下标。
flags:四种:
Spanned.SPAN_INCLUSIVE_EXCLUSIVE:包括起始,不包括终止。
Spanned.SPAN_INCLUSIVE_INCLUSIVE:包括起始,包括终止。
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE:不包括起始,不包括终止。
Spanned.SPAN_EXCLUSIVE_INCLUSIVE:不包括起始,包括终止。
2.2 可设置的格式
BackgroundColorSpan:文本背景色。
UnderlineSpan:下划线。
StrikethroughSpan :删除线。
AbsoluteSizeSpan :文本绝对大小。
RelativeSizeSpan:文本相对大小(相对TextView原有文本大小)。
StyleSpan:文本样式。
NORMAL。
BOLD。
ITALIC。
BOLD_ITALIC。
SuperscriptSpan:文本内容作为上标。
SubscriptSpan:文本内容作为角标。
ImageSpan:插入图片。
ClickableSpan:文本设置点击事件。
需要调用
TextView.movementMethod = LinkMovementMethod.getInstance()
作者:Abfahrt
富文