SpannableString

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

setSpan(Object what, int start, int end, int flags)方法需要用户输入四个参数,what表示设置的格式是什么,可以是前景色、背景色也可以是可点击的文本等等,start表示需要设置格式的子字符串的起始下标,同理end表示终了下标,flags属性就有意思了,共有四种属性:

// new AbsoluteSizeSpan(inteDp, true) 字号绝对值
// new RelativeSizeSpan(0.5f) 字号相对值
// new ScaleXSpan(2.0f) 设置字体宽度大小(相对值,单位:像素) 参数表示为默认字体宽度的多少倍
// new TypefaceSpan("monospace") 字体
//
// new ForegroundColorSpan(Color.MAGENTA) 前景色
// new BackgroundColorSpan(Color.CYAN) 背景色
//
// new StyleSpan(android.graphics.Typeface.NORMAL) 正常
// new StyleSpan(android.graphics.Typeface.BOLD) 粗体
// new StyleSpan(android.graphics.Typeface.ITALIC) 斜体
// new StyleSpan(android.graphics.Typeface.BOLD_ITALIC) 粗斜
//
// new UnderlineSpan() 下划线
// new StrikethroughSpan() 删除线
// new SubscriptSpan() 上角标
// new SuperscriptSpan() 小角标
//
// 超链接:需要添加setMovementMethod方法附加响应
// new URLSpan("tel:4155551212") 电话
// new URLSpan("mailto:webmaster@google.com") 邮件
// new URLSpan("http://www.baidu.com") 网页
// new URLSpan("sms:4155551212") 短信
// new URLSpan("mms:4155551212") 彩信
// new URLSpan("geo:38.899533,-77.036476") 地图
//
// new BulletSpan(android.text.style.BulletSpan.STANDARD_GAP_WIDTH,Color.GREEN) 项目符号
// new ImageSpan(drawable) 图片
//
// Spanned.SPAN_*用来标识在 Span 范围内的文本前后输入新的字符时是否把它们也应用这个效果
// Spanned.SPAN_EXCLUSIVE_EXCLUSIVE(前后都不包括)、
// Spanned.SPAN_INCLUSIVE_EXCLUSIVE(前面包括,后面不包括)、
// Spanned.SPAN_EXCLUSIVE_INCLUSIVE(前面不包括,后面包括)、
// Spanned.SPAN_INCLUSIVE_INCLUSIVE(前后都包括)
更多详情,可以查看://https://www.jianshu.com/p/84067ad289d2
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值