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 图片
    13、RelativeSizeSpan 相对大小(文本字体)
    14、ReplacementSpan 父类,一般不用
    15、ScaleXSpan 基于x轴缩放
    16、StyleSpan 字体样式:粗体、斜体等
    17、SubscriptSpan 下标(数学公式会用到)
    18、SuperscriptSpan 上标(数学公式会用到)
    19、TextAppearanceSpan 文本外貌(包括字体、大小、样式和颜色)
    20、TypefaceSpan 文本字体

21、URLSpan 文本超链接

BackgroundColorSpan 背景色
    SpannableString spanText = new SpannableString("benzlocke");
    spanText.setSpan(new BackgroundColorSpan(Color.GREEN), 0, spanText.length(),
    Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
    mTVText.append("\n");
    mTVText.append(spanText);
    ForegroundColorSpan 文本颜色(前景色)
    spanText = new SpannableString("benzlocke");
    spanText.setSpan(new ForegroundColorSpan(Color.BLUE), 6, spanText.length(),
    Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
    mTVText.append("\n");
    mTVText.append(spanText);
    MaskFilterSpan 修饰效果,如模糊(BlurMaskFilter)、浮雕(EmbossMaskFilter)
    spanText = new SpannableString("benzlocke");
    int length = spanText.length();
    //模糊(BlurMaskFilter)
    MaskFilterSpan maskFilterSpan = new MaskFilterSpan(new BlurMaskFilter(3, Blur.OUTER));
    spanText.setSpan(maskFilterSpan, 0, length - 10, Spannable.
    SPAN_INCLUSIVE_EXCLUSIVE);
    //浮雕(EmbossMaskFilter)
    maskFilterSpan = new MaskFilterSpan(new EmbossMaskFilter(new float[]{1,1,3}, 1.5f, 8, 3));
    spanText.setSpan(maskFilterSpan, length - 10, length, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
    mTVText.append("\n");
    mTVText.append(spanText);
    RasterizerSpan 光栅效果
    spanText = new SpannableString("StrikethroughSpan");
    spanText.setSpan(new StrikethroughSpan(), 0, 7, Spannable.
    SPAN_INCLUSIVE_EXCLUSIVE);
    mTVText.append("\n");
    mTVText.append(spanText);
    StrikethroughSpan 删除线
    spanText = new SpannableString("StrikethroughSpan");
    spanText.setSpan(new StrikethroughSpan(), 0, 7, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
    mTVText.append("\n");
    mTVText.append(spanText);
    SuggestionSpan
    相当于占位符,一般用在EditText输入框中。当双击此文本时,会弹出提示框选择一些建议(推荐的)文字,选中的文本将替换此占位符。在输入法上用的较多。
    UnderlineSpan 下划线
    spanText = new SpannableString("UnderlineSpan");
    spanText.setSpan(new UnderlineSpan(), 0, spanText.length(),
    Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
    mTVText.append("\n");
    mTVText.append(spanText);
    AbsoluteSizeSpan 绝对大小(文本字体)
    spanText = new SpannableString("AbsoluteSizeSpan");
    spanText.setSpan(new AbsoluteSizeSpan(20, true), 0, spanText.length(),
    Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
    mTVText.append("\n");
    mTVText.append(spanText);
    DynamicDrawableSpan 设置图片,基于文本基线或底部对齐。
    DynamicDrawableSpan drawableSpan = new DynamicDrawableSpan(DynamicDrawableSpan.ALIGN_BASELINE) {
    @Override
        public Drawable getDrawable() {
            Drawable d = getResources().getDrawable(R.drawable.ic_launcher);
            d.setBounds(0, 0, 50, 50);
            return d;
        }
    };
    DynamicDrawableSpan drawableSpan2 = new DynamicDrawableSpan(
    DynamicDrawableSpan.ALIGN_BOTTOM) {
        @Override
        public Drawable getDrawable() {
              Drawable d = getResources().getDrawable(R.drawable.ic_launcher);
              d.setBounds(0, 0, 50, 50);
                    return d;
                }
            };
    spanText.setSpan(drawableSpan, 3, 4, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
    spanText.setSpan(drawableSpan2, 7, 8, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
    mTVText.append("\n");
    mTVText.append(spanText);
    //左边图片基于基线对齐,右边图片基于底部对齐
    ImageSpan 图片
    spanText = new SpannableString("ImageSpan");
    Drawable d = getResources().getDrawable(R.drawable.ic_launcher);
    d.setBounds(0, 0, 50, 50);
    spanText.setSpan(new ImageSpan(d), 3, 4, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
    mTVText.append("\n");
    mTVText.append(spanText);
    //和DynamicDrawableSpan差别不大
    RelativeSizeSpan 相对大小(文本字体)
    spanText = new SpannableString("RelativeSizeSpan");
    //参数proportion:比例大小
    spanText.setSpan(new RelativeSizeSpan(2.5f), 3, 4,
    Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
    mTVText.append("\n");
    mTVText.append(spanText);
    //相对大小的比例是基于当前文本字体大小
    ScaleXSpan 基于x轴缩放
    spanText = new SpannableString("benzlocke");
    //参数proportion:比例大小
    spanText.setSpan(new ScaleXSpan(3.8f), 3, 7, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
    mTVText.append("\n");
    mTVText.append(spanText);
    StyleSpan 字体样式:粗体、斜体等
    spanText = new SpannableString("benzlocke");
    //Typeface.BOLD_ITALIC:粗体+斜体
    spanText.setSpan(new StyleSpan(Typeface.BOLD_ITALIC), 3, 7,
    Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
    mTVText.append("\n");
    mTVText.append(spanText);
    SubscriptSpan 下标(数学公式会用到)
    spanText = new SpannableString("benzlocke");
    spanText.setSpan(new SubscriptSpan(), 6, 7, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
    mTVText.append("\n");
    mTVText.append(spanText);
    SuperscriptSpan 上标(数学公式会用到)
    spanText = new SpannableString("benzlocke");
    spanText.setSpan(new SuperscriptSpan(), 6, 7, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
    mTVText.append("\n");
    mTVText.append(spanText);
    TextAppearanceSpan 文本外貌(包括字体、大小、样式和颜色)
    spanText = new SpannableString("benzlocke");
    //若需自定义TextAppearance,可以在系统样式上进行修改
    spanText.setSpan(new TextAppearanceSpan(this, android.R.style.TextAppearance_Medium), 6, 7, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
    mTVText.append("\n");
    mTVText.append(spanText);
    //系统还提供了相关值TextAppearance_Small, TextAppearance_Large等。如有需要可在以上样式基础上修改。
    TypefaceSpan 文本字体
    spanText = new SpannableString("benzlocke");
    //若需使用自定义字体,可能要重写类TypefaceSpan
    spanText.setSpan(new TypefaceSpan("monospace"), 3, 10,
    Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
    mTVText.append("\n");
    mTVText.append(spanText);
    //关于自定义字体的设置,后面将介绍如何使用
    URLSpan 文本超链接
    spanText = new SpannableString("benzlocke");
    spanText.setSpan(new URLSpan("http://orgcent.com"), 10, spanText.length(),
    Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
    mTVText.append("\n");
    mTVText.append(spanText);
    //让URLSpan可以点击
    mTVText.setMovementMethod(new LinkMovementMethod());
 
 

SpannableString属性详解的更多相关文章

  1. android:exported 属性详解

    属性详解 标签: android 2015-06-11 17:47 27940人阅读 评论(7) 收藏 举报 分类: Android(95) 项目点滴(25) 昨天在用360扫描应用漏洞时,扫描结果, ...

  2. OutputCache属性详解(一)一Duration、VaryByParam

    目录 OutputCache概念学习 OutputCache属性详解(一) OutputCache属性详解(二) OutputCache属性详解(三) OutputCache属性详解(四)— SqlD ...

  3. OutputCache属性详解(二)一 Location

    目录 OutputCache概念学习 OutputCache属性详解(一) OutputCache属性详解(二) OutputCache属性详解(三) OutputCache属性详解(四)— SqlD ...

  4. OutputCache属性详解(三)— VaryByHeader,VaryByCustom

    目录 OutputCache概念学习 OutputCache属性详解(一) OutputCache属性详解(二) OutputCache属性详解(三) OutputCache属性详解(四)— SqlD ...

  5. OutputCache属性详解(四)— SqlDependency

    目录 OutputCache概念学习 OutputCache属性详解(一) OutputCache属性详解(二) OutputCache属性详解(三) OutputCache属性详解(四)— SqlD ...

  6. WPF依赖属性详解

    WPF依赖属性详解 WPF 依赖属性 英文译为 Dependency Properties,是WPF引入的一种新类型的属性,在WPF中有着极为广泛的应用,在WPF中对于WPF Dependency P ...

  7. HTML video 视频标签全属性详解

    HTML 5 video 视频标签全属性详解   现在如果要在页面中使用video标签,需要考虑三种情况,支持Ogg Theora或者VP8(如果这玩意儿没出事的话)的(Opera.Mozilla.C ...

  8. Android组件---四大布局的属性详解

    [声明] 欢迎转载,但请保留文章原始出处→_→ 文章来源:http://www.cnblogs.com/smyhvae/p/4372222.html Android常见布局有下面几种: LinearL ...

  9. dede的pagelist标签的listsize数字属性详解(借鉴)

    dede的pagelist标签的listsize数字属性详解.见远seo经常用织梦搭建各种网站,有次发现列表页面的分页显示超过div的界限,也就是溢出了或者说是撑破了.后来经过研究发现是pagelis ...

随机推荐

  1. 【Unity】3.5 导入音频文件

    分类:Unity.C#.VS2015 创建日期:2016-04-05 一.简介 音频文件 (Audio File) 资源的选择原则应该以无故障地流畅运行为宗旨.下面列出了常用的音频文件. .AIFF ...

  2. Cowboy实例

    这个例子主要是用cocos2d-x引擎自带的资源 cocos2d-x-2.2.2\samples\Cpp\TestCpp\Resources\armature 新建工程之后 #include &quo ...

  3. (原创)C++11改进我们的程序之简化我们的程序(八)

    本次要讲的是如何通过泛型函数来简化我们的程序. 泛型函数除了之前介绍的一些优点外还有两个重要的优点 1.消除重复逻辑,提高程序的内聚性和健壮性 泛型函数在某种程度上用来弥补泛型类型的不足.通过泛型类型 ...

  4. matlab问题集总

    每次更新一点,慢慢增加 nargin nargin是用来判断输入变量个数的函数,这样就可以针对不同的情况执行不同的功能.通常可以用他来设定一些默认值,如下面的函数. 例子,函数test1的功能是输出a ...

  5. Improving Performance【转】

    This section provides solutions to some performance problems, and describes configuration best pract ...

  6. Zookeeper之Zookeeper的Client的分析

    1)几个重要概念 ZooKeeper:客户端入口 Watcher:客户端注册的callback ZooKeeper.SendThread: IO线程 ZooKeeper.EventThread: 事件 ...

  7. 【C/C++】关于隐式转换·面试题分析

    题目 以下两个程序片段A 和B ,问哪个能进入循环? 片段A: unsigned short i; unsigned ; ; i < index-; i++) { ........ } 片段B: ...

  8. java RSA 生成公钥私钥

    /** * 引进的包都是Java自带的jar包 * 秘钥相关包 * base64 编解码 * 这里只用到了编码 */ import java.security.Key; import java.sec ...

  9. Quo JS多种触摸手势轻量级JavaScript库

    http://www.uedsc.com/quo-js.html http://quojs.tapquo.com/

  10. scala工程导入报错:scalatest_2.10-1.9.1.jar is cross-compiled with an incompatible version of Scala (2.10).

    错误原因: The Scala IDE tries to check if binary incompatible Scala libraries have been inadvertently mi ...