前言
想要在TextView
的文本添加一些突出文字,然后点击可以进行跳转,首先想到的就是TextView
拼接,但是考虑到换行后的显示又不是很合适,一番查询后发现了SpannableStringBuilder
这个类,不仅可以实现想要的效果,还可以更加神奇,究竟怎么神奇呢,我们先看一下效果图:
每一行都只是一个TextView
,既可以高亮显示文本,而且可以插入图片,并对部分内容设置点击事件,这就是SpannableStringBuilder
可以达到的效果,接下来让我们详细看一下SpannableStringBuilder
这个神奇的类及其使用方法。
简介
谷歌官方的解释是:
This is the class for text whose content and markup can both be changed.
翻译后就是:这是内容和标记都可以更改的文本的类。
简而言之就是:可以为我们的TextView
所显示的String
添加各种的样式,例如:颜色、字号、删除线、斜体,甚至是图片,从而到达突出显示的目的,而且可以同时添加单独的点击样式,实现不同的点击反馈。
SpannableStringBuilder
有个相似类SpannableString
,区别类似与StringBuilder
、String
,就是SpannableStringBuilder
可以使用append
方法拼接,而SpannableString
不可,需要初始化时传入字符串。
方法详细
方法setSpan(Object what, int start, int end, int flags)
,用指定的对象标记指定的文本范围。
参数说明:
- what :
String
不同的Span,即不同的样式,包括以下可用类:
BackgroundColorSpan
: 文本背景色ForegroundColorSpan
: 文本颜色MaskFilterSpan</