Spans介绍

android.text.style包下的所有类:
AbsoluteSizeSpan.java   绝对大小(文本字体)
AlignmentSpan.java
BackgroundColorSpan.java  背景色
BulletSpan.java
CharacterStyle.java
ClickableSpan.java
DrawableMarginSpan.java
DynamicDrawableSpan.java  设置图片,基于文本基线或底部对齐。
EasyEditSpan.java
ForegroundColorSpan.java   文本颜色(前景色) 
IconMarginSpan.java
ImageSpan.java   设置图片
LeadingMarginSpan.java
LineBackgroundSpan.java
LineHeightSpan.java
LocaleSpan.java
MaskFilterSpan.java  修饰效果,如模糊(BlurMaskFilter)浮雕
MetricAffectingSpan.java
ParagraphStyle.java
QuoteSpan.java
RasterizerSpan.java  光栅效果
RelativeSizeSpan.java
ReplacementSpan.java
ScaleXSpan.java  基于X轴缩放
SpellCheckSpan.java
StrikethroughSpan.java  删除线(中划线)
StyleSpan.java  字体样式, 如Bold,Italic,normal
SubscriptSpan.java  下标(数学公式会用到)
SuggestionRangeSpan.java
SuggestionSpan.java  相当于占位符
SuperscriptSpan.java  上标(数学公式会用到)
TabStopSpan.java
TextAppearanceSpan.java  文本外貌(包括字体、大小、样式和颜色)
TtsSpan.java
TypefaceSpan.java  文本字体
UnderlineSpan.java  下划线
UpdateAppearance.java
UpdateLayout.java
URLSpan.java  文本超链接
WrapTogetherSpan.java

ImageSpan使用示例代码:

        //获取Drawable资源
        Drawable d = context.getResources().getDrawable(res);
        d.setBounds(0, 0, (int) (d.getIntrinsicWidth() * 0.8), (int) (d.getIntrinsicHeight() * 0.8));
        //创建ImageSpan
        ImageSpan span = new ImageSpan(d, ImageSpan.ALIGN_BASELINE);
        //用ImageSpan替换文本
        ss.setSpan(span, 0, 1, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
     Spannable.SPAN_EXCLUSIVE_EXCLUSIVE:前后都不包括,即在指定范围的前面和后面插入新字符都不会应用新样式
     Spannable.SPAN_EXCLUSIVE_INCLUSIVE :前面不包括,后面包括。即仅在范围字符的后面插入新字符时会应用新样式
     Spannable.SPAN_INCLUSIVE_EXCLUSIVE :前面包括,后面不包括。
     Spannable.SPAN_INCLUSIVE_INCLUSIVE :前后都包括。
原文地址:https://www.cnblogs.com/huyang011/p/7476377.html