前言
TextView 可以说是 Android 中最简单、最常见的文字控件了,几乎每个页面都有 TextView 的身影,绝大多数情况我们用 TextView 只是单纯地显示一个文本,但是 TextView 的功能远远不止如此哦,简单的 TextView 也能千变万化显示出各种效果,这一切都要归功于 SpannableString。
TextView 和 SpannableString 一起使用具体有哪些神奇的地方呢?本场 Chat 将全面地介绍 SpannableString 的用法,让你的 TextView 不再简单。
SpannableString
在 Android 中,常规的字符串类就是 String 或者 Charsequence,String 用的最多,有些人可能对 Charsequence 都有点陌生,EditText 的 getText() 返回的就是 Charsequence 对象。但是今天我们要介绍的 SpannableString 就是另一种更强大的字符串类。
Spannable 是什么意思?英语词典上还真不太好查,我自己的理解的意思是:可测量、可塑造的,所以 SpannableString 就是一种可测量可塑造的字符串。
1)默认 TextView 样式
默认 TextView 样式我们再熟悉不过了,看下截图,没啥好说的。
2)自定义字体
SpannableString 可以给 TextView 设置自定义字体样式,并且可以指定某几个字,其实 SpannableString 几乎所有的属性可可以指定到具体某几个字。
SpannableString ss = new SpannableString(txCustomTypeface.getText());
ss.setSpan(new TypefaceSpan("sans-serif"), 2, 4, SPAN_EXCLUSIVE_EXCLUSIVE);
txCustomTypeface.setText(ss);
这里用到了一个新的类:TypefaceSpan,它就是用来设置字体样式的,参数有 5 个可选值:default、default-bold、monospace、serif、sans-serif。后面的 2 和 4 是需要生效的起始位置和结束位置。