SpannableString其实和String一样,都是一种字符串类型,SpannableString可以直接作为TextView的显示 文本,不同的是SpannableString可以通过使用其方法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 从起始下标到终了下标,包括终了下标
SpannableString的setSpan()方法可以同时使用多个,实现多种效果叠加。
几种Span常用的格式:
- ForegroundColorSpan 为文本设置前景色
- BackgroundColorSpan 为文本设置背景色,效果和TextView的setBackground()类
- RelativeSizeSpan 设置文字相对大小,在TextView原有的文字大小的基础上,相对设置文字大小
- StrikethroughSpan 为文本设置中划线,也就是常说的删除线
- UnderlineSpan 为文本设置下划线
- SuperscriptSpan 设置上标
- SubscriptSpan 设置下标,功能与设置上标类似
- StyleSpan 为文字设置风格(粗体、斜体),和TextView属性textStyle类似
- ImageSpan 设置文本图片
网友评论