关于SpannableString的一些用法
来源:互联网 发布:v380监控软件安卓版 编辑:程序博客网 时间:2024/05/29 18:32
因为项目中有用到SpannableString,所以稍微写了一下,有参考http://blog.csdn.net/lanxingfeifei/article/details/50523555,如果需要详尽的可以去链接博客里看看
/** * 分别有 Spanned.SPAN_EXCLUSIVE_EXCLUSIVE(前后都不包括)、 * Spanned.SPAN_INCLUSIVE_EXCLUSIVE(前面包括,后面不包括)、替换 * Spanned.SPAN_EXCLUSIVE_INCLUSIVE(前面不包括,后面包括)、 * Spanned.SPAN_INCLUSIVE_INCLUSIVE(前后都包括) */private void initSpanBuilder() { SpannableString spn = new SpannableString("颜色大小斜体删除下划超文本链接图片"); spn.setSpan(new ForegroundColorSpan(ContextCompat.getColor(this, R.color.colorAccent)), 0, 2, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //大小 spn.setSpan(new AbsoluteSizeSpan(20, true), 2, 3, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);//true,用的是dp,不用的话就填一个数字eg:0.5f,这个表示是原字体的0.5倍 spn.setSpan(new AbsoluteSizeSpan(12, true), 3, 4, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);//true,用的是dp //斜体 spn.setSpan(new StyleSpan(Typeface.BOLD_ITALIC), 4, 6, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //删除 spn.setSpan(new StrikethroughSpan(), 6, 8, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //下划线 spn.setSpan(new UnderlineSpan(), 8, 10, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); /** *超文本链接 **/ //电话 spn.setSpan(new URLSpan("tel:123456789"), 10, 15, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); // //邮件 // spn.setSpan(new URLSpan("mailto:weibo@sina.com"), 10, 15, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); // //网址 // spn.setSpan(new URLSpan("http://www.baidu.com"), 10, 15, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); // //短信 // spn.setSpan(new URLSpan("sms:123456789"), 10, 15, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); // //彩信 // spn.setSpan(new URLSpan("mms:123456789"), 10, 15, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //地图 //// spn.setSpan(new URLSpan("geo:38.899533,-77.036476"), 10, 15, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);//超链接的样式ColorStateList lsc=null;XmlResourceParser xrp = getResources().getXml(R.drawable.csl);try { lsc=ColorStateList.createFromXml(getResources(),xrp);} catch (XmlPullParserException e) { e.printStackTrace();} catch (IOException e) { e.printStackTrace();}spn.setSpan(new TextAppearanceSpan("monospace",android.graphics.Typeface.BOLD_ITALIC,30,lsc,lsc),10,15,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);//图片Drawable drawable = ContextCompat.getDrawable(this, R.mipmap.ic_launcher);drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());ImageSpan igspn = new ImageSpan(drawable, ImageSpan.ALIGN_BASELINE);spn.setSpan(igspn, 15, 17, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);/** * 混合使用 */SpannableString spanText = new SpannableString("sixsix6666666"); int length = spanText.length(); //模糊(BlurMaskFilter) MaskFilterSpan maskFilterSpan = new MaskFilterSpan(new BlurMaskFilter(3, BlurMaskFilter.Blur.OUTER)); spanText.setSpan(maskFilterSpan, 0, length -1, Spannable.SPAN_INCLUSIVE_EXCLUSIVE); //浮雕(EmbossMaskFilter) maskFilterSpan = new MaskFilterSpan(new EmbossMaskFilter(new float[]{1,1,3}, 1.5f, 8, 3)); spanText.setSpan(maskFilterSpan, length -1, length, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);SpannableStringBuilder stringBuilder=new SpannableStringBuilder("光栅栏效果");stringBuilder.append(spanText);stringBuilder.append(spn);stringBuilder.append("拼");stringBuilder.append("接");//spn.setSpan(stringBuilder,17,19,Spanned.SPAN_INCLUSIVE_EXCLUSIVE);binding.tvText.setText(stringBuilder);//用于超文本链接(没有链接就不用写了)binding.tvText.setMovementMethod(LinkMovementMethod.getInstance());}
阅读全文
0 0
- 关于SpannableString的一些用法
- 转载:关于SpannableString的一些用法
- SpannableString的一些api
- SpannableString的基本用法
- Android SpannableString 的用法
- SpannableString的基本用法
- SpannableString 的用法
- SpannableString的用法
- SpannableString的常用用法
- SpannableString的简单用法
- Android SpannableString的用法
- SpannableString的用法
- SpannableString的用法详解
- SpannableString的基本用法
- Android SpannableString的用法
- SpannableString的简单用法
- 关于SpannableString的使用
- Android 中SpannableString的用法
- 树链剖分
- Error:Could not find com.android.support:appcompat-v7:25.3.1.
- SpringBoot如何添加拦截器
- linux配置静态路由实现路由转发和quagga实现动态路由实验
- git学习(廖雪峰的git教程)笔记 一
- 关于SpannableString的一些用法
- JS 数组 常用操作
- Spring技术内幕——深入解析Spring架构与设计原理(二)AOP
- AssetBundle and the AssetBundle Manager介绍
- PCL:将点云投影到参数模型上
- Linux常用命令
- PAT 1010 一元多项式求导
- 【Solidity】本地安装Solidity并运行开发环境
- 首屏图片延迟加载(原生JS)