SpannableString基本用法

前言平常开发中经常遇到一块的文本信息,其中包括不同的Style,比如说某些字体大小、颜色不一致;包含某些网页链接等等。之前我通常使用多个TextView来实现它们,但是过多的TextView不仅很难维护而且在性能消耗上也比较大;因此就有了这篇关于SpannableString的文章。以此记录。什么是SpannableString?This is the class for text who...
摘要由CSDN通过智能技术生成

前言

平常开发中经常遇到一块的文本信息,其中包括不同的Style,比如说某些字体大小、颜色不一致;包含某些网页链接等等。之前我通常使用多个TextView来实现它们,但是过多的TextView不仅很难维护而且在性能消耗上也比较大;因此就有了这篇关于SpannableString的文章。以此记录。

什么是SpannableString?

This is the class for text whose content is immutable but to which
markup objects can be attached and detached.
For mutable text, see {@link SpannableStringBuilder}.

通俗的说:它就是不可变文本类,但是可以对特定的文本加以修饰达到前文所述的效果。其创建方式与String类似不多说明。

如何对特定的文本进行特殊的修饰

  1. 通过setSpan函数即可实现
 spannableString.setSpan(span, strat, end, flag);

对参数加以说明,如下表:

参数 含义
start 需要修饰文本块的起始下标
end 结束下标
span 特定的样式修饰类
flag 指定span修饰的区域是否包括start,end等

Spannable.FLAG四种模式:

  • Spannable.SPAN_INCLUSIVE_EXCLUSIVE 起始下标之前添加新文字也会应用、结束下标之后添加新文字不会应用
  • Spannable.SPAN_INCLUSIVE_INCLUSIVE 起始下标和结束下标前、后添加文本都会应用
  • Spannable.SPAN_EXCLUSIVE_INCLUSIVE 与第一种相反
  • Spannable.SPAN_EXCLUSIVE_EXCLUSIVE 都不包括

一些常用的Span

  1. ForegroundColorSpan 设置字体颜色
final String content = mForegroundTv.getText().toString();
SpannableString spannableString = new SpannableString(content);
ForegroundColorSpan foregroundColorSpan = new ForegroundColorSpan(Color.parseColor("#FFD700"));
spannableString.setSpan(foregroundColorSpan, 2, content.length(), Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
mForegroundTv.setText(spannableString);
  1. BackgroundColorSpan 设置背景色
final String content = mBackgroundTv.getText(</
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值