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. MYSQL双机热备份的配置实施(问题总结)

    为了实现MYSQL数据库的冗灾.备份.恢复.负载均衡等功能,喻名堂这两天一直在学习和研究mysql的双机热备,其实MYSQL的双机热备就是使用MYSQL同步功能两种方式里面的“主-主”同步方式实现的. ...

  2. 银联在线支付B2C UnionPay.NET

    新春即将来临,首先给大家拜个早年,祝攻城狮们新年快乐.万事如意.合家欢乐.团团圆圆.幸福健康.来年更能大展宏图 实现各自的梦想! 同时预祝各大科技公司大佬们事业蒸蒸日上.公司转型突破创新.冲出突围带领 ...

  3. linux命令(38):split 分割文件

    在Linux下用split进行文件分割: 模式一:指定分割后文件行数 对与txt文本文件,可以通过指定分割后文件的行数来进行文件分割. 命令: split -l 300 large_file.txt ...

  4. 【Android】ADB常用指令与logcat日志

    ADB命令简介 ADB是一个功能强大的命令行工具.通过它可以直接和模拟器或真机进行交互.它是一个具有客户端和服务器端的程序. 它主要由三个部分组成: 客户端,它运行在你的开发机上,你可以通过执行adb ...

  5. APT典型应用示例

    Ubuntu下的APT(Advanced Packaging Tools,高级软件包管理工具)是用于在Ubuntu下用于软件安装.升级.维护的工具.注意运行apt指令需要root权限. 下面是一个简单 ...

  6. java命令执行jar包的方式

    http://www.cnblogs.com/adolfmc/archive/2012/10/07/2713562.html 大家都知道一个java应用项目可以打包成一个jar,当然你必须指定一个拥有 ...

  7. LeetCode: Pascal's Triangle II 解题报告

    Pascal's Triangle II Total Accepted: 19384 Total Submissions: 63446 My Submissions Question Solution ...

  8. n阶方阵A可逆充分必要条件

    n阶方阵A可逆 充分必要条件:<=> A非奇异(非奇异矩阵就是对应的行列式不等于等于0的方阵)<=> |A|≠0 <=> r(A) = n <=> A的 ...

  9. 把Java中\u格式的unicode编码转成中文

    使用org.apache.commons.lang.StringEscapeUtils#unescapeJava(String)方法. 当然用org.apache.commons.lang.Strin ...

  10. iOS 中JSONModel的使用

    基本使用 涉想你的JSON数据像这样: { "id": "10", "country": "Germany", &quo ...