SpannableString使用

1.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 SpannableStringBuilder.

一个内容不可变但可以添加和分离标记对象的文本的类。 对于可变文本,请参阅 SpannableStringBuilder。
SpannableString是一个可以对当前文本提供更加丰富的功能的类,eg:字体颜色,背景颜色,字体大小,斜体,粗体,插入图片,中划线,下划线,点击链接,点击事件。

2.使用

val spannableString = SpannableString(text)
spannableString.setSpan(
            RelativeSizeSpan(proportion),
            0, text.length, Spanned.SPAN_INCLUSIVE_INCLUSIVE
    	)
textView.text = spannableString

setSpan方法:

Attach the specified markup object to the range start…end of the text, or move the object to that range if it was already attached elsewhere.

params1:object标记对象

params2:起点

params3: 终点

params4:模式flags 作用于起点和终点的类型

SPAN_INCLUSIVE_EXCLUSIVE:包含起点,不包含终点
SPAN_INCLUSIVE_INCLUSIVE:包含起点,包含终点
SPAN_EXCLUSIVE_EXCLUSIVE:不包含起点,不包含终点
SPAN_EXCLUSIVE_INCLUSIVE:不包含起点,包含终点

RelativeSizeSpan

Uniformly scales the size of the text to which it’s attached by a certain proportion.
For example, a RelativeSizeSpan that increases the text size by 50% can be constructed like this:

SpannableString string = new SpannableString("Text with relative size span");
string.setSpan(new RelativeSizeSpan(1.5f), 10, 24, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

3.各种span

ClickableSpan 实现一个可点击的span,它是一个接口,重写onClick方法
URLSpan 实现点击跳转一个链接,基于ClickableSpan接口
UnderlineSpan 实现一个下划线的span
TypefaceSpan实现一个自定义字体的span
TtsSpan 关联语音引擎的span
TextAppearanceSpan 提供字体外观样式
SuperscriptSpan 文本的基准线提高
SubscriptSpan 将文本的基准线降低
StyleSpan 文本加粗  斜体
StrikethroughSpan 删除线
ScaleXSpan 水平缩放文本
RelativeSizeSpan 按照比例缩放字体
QuoteSpan 带有条纹
MaskFilterSpan 模糊文本
ImageSpan 图片代替文本
ForegroundColorSpan 改变前景颜色(字体颜色)
DynamicDrawableSpan 可与底部或周围文本的基线对齐的Drawable替换它所附加的文本。
BackgroundColorSpan 改变背景
AbsoluteSizeSpan 改变文本大小
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值