SpannableStringBuilder用法

本文介绍了SpannableStringBuilder和SpannableString的区别,强调SpannableStringBuilder可以进行字符串内容的追加,并提供了关于setSpan方法的参数说明。文章还探讨了如何使用各种Span,包括解决ClickableSpan的默认样式问题和TextAppearanceSpan参数的解释。
摘要由CSDN通过智能技术生成

SpannableStringBuilder用法


先说下SpannableString与SpannableStringBuilder的区别:

    SpannableStringBuilder可以说是String性能的扩展,也可理解为变异的String安静,只是它们可以对这些字符串添加额外的样式信息,但String则不行,如加下划线、加背景色、改变字体颜色、用图片把指定的文字给替换掉等。
区别在于 SpannableString构造对象的时候传入一个String,之后再无法更改String的内容,也无法像SpannableStringBuilder那样, 可以通过其append()方法来拼接多个String。

一个核心方法:setSpan (Object what, int start, int end, int flags);

参数说明:
object what :对应的各种Span,后面会提到;
int start:开始应用指定Span的位置,索引从0开始;
int end:结束应用指定Span的位置(效果范围:前包后不包);
int flags:取值有四个:

  Spannable.SPAN_EXCLUSIVE_EXCLUSIVE:前后都不包括,即在指定范围的前面和后面“新插入”字符都不会应用新样式
  Spannable.SPAN_EXCLUSIVE_INCLUSIVE :前面不包括,后面包括。即仅在范围字符的后面“新插入”字符时会应用新样式
  Spannable.SPAN_INCLUSIVE_EXCLUSIVE :前面包括,后面不包括。
  Spannable.SPAN_INCLUSIVE_INCLUSIVE : 前后都包括。

what可设置的span有很多如下:

    1、BackgroundColorSpan 背景色   
    2、ClickableSpan 文本可点击,有点击事件  
    3、ForegroundColorSpan 文本颜色(前景色)  
    4、MaskFilterSpan 修饰效果,如模糊(BlurMaskFilter)、浮雕(EmbossMaskFilter)  
    5、MetricAffectingSpan 父类,一般不用  
    6、RasterizerSpan 光栅效果  
    7、StrikethroughSpan 删除线(中划线)  
    8、SuggestionSpan 相当于占位符  
    9、UnderlineSpan 下划线  
    10、AbsoluteSizeSpan 绝对大小(文本字体)  
    11、DynamicDrawableSpan 设置图片,基于文本基线或底部对齐。  
    12、ImageSpan 图片  
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值