博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android Span的简单使用
阅读量:6951 次
发布时间:2019-06-27

本文共 2842 字,大约阅读时间需要 9 分钟。

 Spanable中的常用常量:
 Spanned.SPAN_EXCLUSIVE_EXCLUSIVE --- 不包含start和end所在的端点                 (a,b)
 Spanned.SPAN_EXCLUSIVE_INCLUSIVE --- 不包含端start,但包含end所在的端点       (a,b]
 Spanned.SPAN_INCLUSIVE_EXCLUSIVE --- 包含start,但不包含end所在的端点          [a,b)
 Spanned.SPAN_INCLUSIVE_INCLUSIVE--- 包含start和end所在的端点                       [a,b]

1.改变字体的不同颜色

String text = String.format("¥%1$s  门市价:¥%2$s", 18.6, 22);        SpannableStringBuilder style = new SpannableStringBuilder(text);        int z = text.lastIndexOf("门");        /**         *  ForegroundColorSpan设置前景的颜色         */        style.setSpan(new ForegroundColorSpan(Color.RED), 0, 2,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE );        style.setSpan(new ForegroundColorSpan(Color.YELLOW), 2, 4,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE );        style.setSpan(new ForegroundColorSpan(Color.GREEN), 4, 6,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE );        textView2.setText(style);

2.改变字体大小 颜色 加换行

/**         * 改变字体大小  颜色 加换行         */        Spannable span = new SpannableString("2017"+"\n"+"-03-02");        span.setSpan(new RelativeSizeSpan(1.5f), 0, 4, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);        span.setSpan(new RelativeSizeSpan(3.0f), 5, 11, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);        span.setSpan(new ForegroundColorSpan(Color.RED), 0, 11, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);        /**         * BackgroundColorSpan设置背景色,为0代表不设置背景色默认为activity背景色         */        //span.setSpan(new BackgroundColorSpan(Color.WHITE), 0, 10, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);        span.setSpan(0, 0, 10, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);        textView3.setText(span);

3.带有URL的TextView文本

String msg = "带有URL的TextView文本《点击这里跳转》";        SpannableString smp = new SpannableString(msg);        ClickableSpan clickableSpan = new ClickableSpan() {            @Override            public void onClick(View widget) {                startActivity(new Intent(MainActivity.this, Main2Activity.class));            }            @Override            public void updateDrawState(TextPaint ds) {                /**                 * 这里如果设置为false则不带下划线,true带有下划线                 */                ds.setUnderlineText(false);            }        } ;        /**         * 设置点击的范围         */        smp.setSpan(clickableSpan, msg.indexOf("《") + 1, msg.lastIndexOf("》"), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);        /**         * 设置前景色         */    smp.setSpan(new ForegroundColorSpan(Color.parseColor("#0AC3BC")), msg.indexOf("《"), msg.lastIndexOf("》") + 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);    textView4.setText(smp);        /**         * 设置添加链接         */        textView4.setMovementMethod(LinkMovementMethod.getInstance());

4.带有下划线的文本

String content="带有下划线的文本";        SpannableString ssb = new SpannableString(content);        ssb.setSpan(new UnderlineSpan(), 0, 6, Spanned.SPAN_INCLUSIVE_INCLUSIVE);        textView5.setText(ssb);

 

转载于:https://www.cnblogs.com/galibujianbusana/p/6490461.html

你可能感兴趣的文章
js 正则通过class查找Tag内的内容。
查看>>
Let's Encrypt 使用教程,免费的SSL证书,让你的网站拥抱 HTTPS
查看>>
.net 面试题系列四(附答案)
查看>>
sql server的并发性
查看>>
windows php启动浏览器
查看>>
CPP_类模板与模板类
查看>>
用CocoaPods做iOS程序的依赖管理
查看>>
虚拟机的类加载机制
查看>>
登录判断跳转页面
查看>>
多线程IO操作(扫描文件夹并计算总大小)
查看>>
读UNIX编程艺术(一)
查看>>
oracle存储过程获取异常信息码和异常信息
查看>>
大系统小做培训总结
查看>>
Web Service 那点事儿(3)—— SOAP 及其安全控制
查看>>
一步步制作rpm包
查看>>
App支付签名错误
查看>>
kali linux虚拟wifi搭建
查看>>
jquery设置元素的readonly和disabled
查看>>
监控文件是否被修改
查看>>
Linux学习笔记:Rsync
查看>>