原文链接: https://www.cnblogs.com/qynprime/p/8026672.html

SpannableString其实和String一样,都是一种字符串类型,SpannableString可以直接作为TextView的显示文本,不同的是SpannableString可以通过使用其方法setSpan方法实现字符串各种形式风格的显示,重要的是可以指定设置的区间,也就是为字符串指定下标区间内的子字符串设置格式。

setSpan(Object what, int start, int end, int flags)方法需要用户输入四个参数,

1、参数一:表示样式,上面的ForegroundColorSpan就是一种样式,常用的样式如下:

  • BackgroundColorSpan : 文本背景色
  • ForegroundColorSpan : 文本颜色
  • MaskFilterSpan : 修饰效果,如模糊(BlurMaskFilter)浮雕
  • RasterizerSpan : 光栅效果
  • StrikethroughSpan : 删除线
  • SuggestionSpan : 相当于占位符
  • UnderlineSpan : 下划线
  • AbsoluteSizeSpan : 文本字体(绝对大小)
  • DynamicDrawableSpan : 设置图片,基于文本基线或底部对齐。
  • ImageSpan : 图片
  • RelativeSizeSpan : 相对大小(文本字体)
  • ScaleXSpan : 基于x轴缩放
  • StyleSpan : 字体样式:粗体、斜体等
  • SubscriptSpan : 下标(数学公式会用到)
  • SuperscriptSpan : 上标(数学公式会用到)
  • TextAppearanceSpan : 文本外貌(包括字体、大小、样式和颜色)
  • TypefaceSpan : 文本字体
  • URLSpan : 文本超链接
  • ClickableSpan : 点击事件

2、参数二、三,start表示需要设置格式的子字符串的起始下标,end表示终了下标

3、参数四,flags属性共有四种:

Spanned.SPAN_INCLUSIVE_EXCLUSIVE 从起始下标到终了下标,包括起始下标
Spanned.SPAN_INCLUSIVE_INCLUSIVE 从起始下标到终了下标,同时包括起始下标和终了下标
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE 从起始下标到终了下标,但都不包括起始下标和终了下标
Spanned.SPAN_EXCLUSIVE_INCLUSIVE 从起始下标到终了下标,包括终了下标

 

示例:

ForegroundColorSpan,为文本设置前景色,效果和TextView的setTextColor()类似,实现方法如下:

SpannableString spannableString = new SpannableString("设置文字的前景色为淡蓝色");ForegroundColorSpan colorSpan = new ForegroundColorSpan(Color.parseColor("#0099EE"));spannableString.setSpan(colorSpan, 9, spannableString.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); textView.setText(spannableString);

效果:

 

 

-- NORMAL --

-- NORMAL --

-- NORMAL --

更多相关文章

  1. Flutter基本UI组件StatefulWidget与StatelessWidget(上)
  2. 用Android自带的DrawerLayout和ActionBarDrawerToggle实现侧滑效
  3. 跟Google学习Android开发-起始篇-构建你的第一个应用程序(1)
  4. 跟Google学习Android开发-起始篇-保存数据(1)
  5. 跟Google学习Android开发-起始篇-保存数据(3)
  6. Android——ECG心电图的绘制实现(二)
  7. Android(安卓)下枚举型使用、及与 int 转换的困惑
  8. Android获取内置sdcard跟外置sdcard路径
  9. 仿写Android淘宝客户端界面(一)——仿Tab选项卡切换界面

随机推荐

  1. 绑定和解除相同javascript函数的目的是什
  2. jquery不会对select/选项更改事件作出反
  3. jquery ajax和php实现返回值 json类型
  4. 使用jquery post发布PHP文件
  5. 如何使用jQuery增加字体大小的变化?
  6. 将CSS样式转换成JS变量?
  7. JQuery 的选取元素 和 方法
  8. 使用json将发送请求发送到RESTful WCF
  9. 求ext动态树(asp.net+jquery+ajax+sql2008
  10. JQuery UI自动完成(1.8)滚动