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. ios中解析json对象基类

    这个是对上面一篇写的一个解析json对象的基类 @interface BaseObjectFromJson : NSObject + (id) objectWithDict:(NSDictionary ...

  2. create-react-app的使用及原理分析

    create-react-app 是一个全局的命令行工具用来创建一个新的项目 react-scripts 是一个生成的项目所需要的开发依赖 一般我们开始创建react web应用程序的时候,要自己通过 ...

  3. git报错之index.lock

    当想回退到某个版本的时候,用git reset --hard commit_id,发现报错,原因是.git目录下多了个index.lock文件,可以通过rm命令删除,然后再回退 rm -f ./.gi ...

  4. android studio - Manifest merger failed with multiple errors, see logs

    今天编译运行的时候遇到了“Error:Execution failed for task ':test:processDebugManifest'.> Manifest merger faile ...

  5. lua -- 清理数组

    function UIBagController:ClearGoods( ) ,#self.itemArr do print("=======ClearGoods======" . ...

  6. 利用es-checker检测当前node对ES6的支持情况

    ode.js发展非常快,对es6特性的支持也越来越良心,但node.js版本很多,各版本对es6的支持度都不一样,为了能清晰的了解各版本对es6特性的支持,需要有一个工具能提供比较清晰的支持说明,甚至 ...

  7. Linux服务开机自启动使用示例

    本文以redis服务为例,介绍了两种服务自启动的方法service,systemctl使用示例 1.修改redis.conf,允许后台运行 daemonize no 改为 daemonize yes ...

  8. javascript基础拾遗(三)

    1.map数组映射操作 function add(x) { return x+1 } var nums = [1,3,5,7,9] result = nums.map(add) console.log ...

  9. JAVA Zero Copy的相关知识【转】

    转自:https://my.oschina.net/cloudcoder/blog/299944 摘要: java 的zero copy多在网络应用程序中使用.Java的libaries在linux和 ...

  10. jquery改变元素上下排列的顺序

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...