Spanned, Spannable介绍

前言

Android提供了Span架构 支持文本丰富的样式及排版实现,本文介绍的Spanned Spannable接口便是该架构的重要部分,接口支持了对字符串增加标记对象的能力,使Span架构能根据标记对象对字符串样式做额外支持。

UML图

Spanned, Spannable介绍_第1张图片
Spanned.png
  • CharSequence java接口,定义一个可读字符序列,常用的 String, StringBuilder都实现来该接口。
  • Spanned android上扩展了CharSequence接口,表示可标记文本对象,主要定义getSpan*相关方法,主要实现类是SpannedString
  • Spannable 扩展了Spanned接口,增加了修改Span对象的方法,所以Spannable对象是可以修改内部文本的标记对象的,比如SpannableString类。
  • Editableandroid增加的表示可编辑文本的接口,继承于Spannable,所以它既可以编辑Span,又可以编辑文本,系统提供了SpannableStringBuilder实现类。

从上面可以看到不同的场景适用的Spanned对象是不同的,所以我们要根据具体现场选择合适的类适用。其中,SpannableStringSpannableStringBuilder的区别类似于StringStringBuilder,是否可以修改内部文本。另外,这些实现类都提供了static valueOf(CharSequence)方法方便的将一个CharSequence 对象转换为相应的Spanned对象.。

你可能感兴趣的:(Spanned, Spannable介绍)