今天我要玩TextView,那么TextView有啥好玩的呢?不就是一个渣渣基础控件么,setText搞定。But,作为开发一定遇到过一种情况,UI给了你一张图,上面有一行字,但是MMP的文字的颜色不一样。写两个Textview放上去?太慢了。So.
自己食用
SpannableString
这家伙和String差不多,可以用textview.setText(spannableString),这玩意有啥用呢,淡然是实现酷炫的效果啦。
setSpan
上面那个家伙的一个方法,有四个入参
一.Object what 酷炫的样式
二. int start 酷炫样式的起始位置
三. int end 酷炫样式的结束位置
四.int flags 恩...就是立一个flag,有四种属性
- Spanned.SPAN_INCLUSIVE_EXCLUSIVE 从起始下标到终了下标,包括起始下标
- Spanned.SPAN_INCLUSIVE_INCLUSIVE 从起始下标到终了下标,同时包括起始下标和终了下标
- Spanned.SPAN_EXCLUSIVE_EXCLUSIVE 从起始下标到终了下标,但都不包括起始下标和终了下标
- Spanned.SPAN_EXCLUSIVE_INCLUSIVE 从起始下标到终了下标,包括终了下标
特效DuangDuangDuang
- ForegroundColorSpan 改变文字颜色
SpannableString spannableString = new SpannableString("我可是要成为海贼王的男人");
ForegroundColorSpan colorSpan = new ForegroundColorSpan(Color.parseColor("#333333"));
spannableString.setSpan(colorSpan, 6, spannableString.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
textView.setText(spannableString);
- BackgroundColorSpan 背景色,用法同上
- RelativeSizeSpan 文字大小
- StrikethroughSpan
删除线 - UnderlineSpan 下划线
- SuperscriptSpan 上标™°
- SubscriptSpan 下标
- StyleSpan 文字变粗Typeface.BOLD,变斜Typeface.ITALIC
- ImageSpan 文本图片🙂
- ClickableSpan 点击事件
- URLSpan 超链接点击事件
- SpannableStringBuilder 可以拼接SpannableString
Over. 想再看一遍钢炼。