代码地址如下:
http://www.demodashi.com/demo/15007.html

####前言
在android开发中,我们不免会用到 TextView 的各种显示效果,如字体样式,颜色,大小,背景等。今天要讲的就是这么一个工具类SpannableStringUtil,方便快捷的实现各种文字效果。

今天涉及的内容有:

  1. SpannableString"截取"基本介绍
  2. SpannableStringUtil的各种特效使用介绍
  3. SpannableStringUtil的综合使用
  4. 效果图和项目结构图

注:文字效果的使用封装到SpannableStringUtil类中,具体使用大家可以参考demo,下面做具体介绍。
#####一. SpannableString"截取"基本介绍
SpannableString设置样式的时候,涉及到下标"截取"样式的问题,其"截取"样式分以下四种:

  Spanned.SPAN_EXCLUSIVE_EXCLUSIVE: (start,end) --- 前后下标都不包括Spanned.SPAN_EXCLUSIVE_INCLUSIVE: (start,end] --- 前面不包括,后面包括Spanned.SPAN_INCLUSIVE_EXCLUSIVE: [start,end) --- 前面包括,后面不包括Spanned.SPAN_INCLUSIVE_INCLUSIVE: [start,end] --- 前后都包括

#####二. SpannableStringUtil的各种特效使用介绍
######2.01 设置字体大小

        //设置字体大小String textSizeStr="设置字体大小";String textSizeChar="字体";SpannableString textSizeSp=SpannableStringUtil.setTextSize(textSizeStr,textSizeChar,1.5f);mTvTextSize.setText(textSizeSp);

######2.02 设置文字前景色

        //设置文字前景色String textFrontColorStr="设置文字前景色";String textFrontColorChar="前景色";SpannableString textFrontColorSp=SpannableStringUtil.setTextFrontColor(textFrontColorStr,textFrontColorChar,R.color.red);mTvTextFrontColor.setText(textFrontColorSp);

######2.03 设置背景色

        //设置背景色String textBgColorStr="设置背景色";String textBgColorChar="背景色";SpannableString textBgColorSp=SpannableStringUtil.setTextBackgroundColor(textBgColorStr,textBgColorChar,R.color.blue);mTvTextBgColor.setText(textBgColorSp);

######2.04 设置字体样式

        String textStyleStr="设置字体样式,普通,粗体,斜体,粗斜体,写完了";String textStyleOneChar="普通";String textStyleTwoChar="粗体";String textStyleThreeChar="斜体";String textStyleFourChar="粗斜体";SpannableString oneSp=SpannableStringUtil.setTextStyle(textStyleStr,textStyleOneChar, Typeface.NORMAL);SpannableString twoSp=SpannableStringUtil.setTextStyle(oneSp,textStyleTwoChar, Typeface.BOLD);SpannableString threeSp=SpannableStringUtil.setTextStyle(twoSp,textStyleThreeChar, Typeface.ITALIC);SpannableString fourSp=SpannableStringUtil.setTextStyle(threeSp,textStyleFourChar, Typeface.BOLD_ITALIC);mTvTextStyle.setText(fourSp);

######2.05 设置文字划线

        String textLineStr="设置文字划线,下划线和中划线,写完了";String textLineOneChar="下划线";String textLineTwoChar="中划线";SpannableString onefSp=SpannableStringUtil.setTextLine(textLineStr,textLineOneChar,false);SpannableString twofSp=SpannableStringUtil.setTextLine(onefSp,textLineTwoChar,true);mTvTextLine.setText(twofSp);

######2.06 设置内容上角标,下角标
注意mTvTextMark要设置足够的paddingTop和paddingBottom,不然上下标会显示不全

        //设置内容上角标,下角标//注意mTvTextMark要设置足够的paddingTop和paddingBottom,不然上下标会显示不全String textMarkStr="设置文字上角标和文字下角标";String textMarkOneChar="上角标";String textMarkTwoChar="下角标";SpannableString oneMarkSp=SpannableStringUtil.setTextMark(textMarkStr,textMarkOneChar,true);SpannableString twoMarkSp=SpannableStringUtil.setTextMark(oneMarkSp,textMarkTwoChar,false);mTvTextMark.setText(twoMarkSp);

######2.07 设置内容沿x方向拉伸

        String textXStr="设置内容沿x方向拉伸";String textXChar="x方向拉伸";SpannableString xSp=SpannableStringUtil.setTextScaleX(textXStr,textXChar,2f);mTvTextXscale.setText(xSp);

######2.08 左侧右侧插入图片

        String pictureStr="设置左侧和右侧插入图片";String pictureOneChar="左";String pictureTwoChar="右";SpannableString pictureOneSp=SpannableStringUtil.setTextLeftImage(pictureStr,pictureOneChar,R.mipmap.ic_check);SpannableString pictureTwoSp=SpannableStringUtil.setTextRightImage(pictureOneSp,pictureTwoChar,R.mipmap.ic_check);mTvPicture.setText(pictureTwoSp);

######2.09 将文字替换成图片

        String replaceStr="将文字替换成图片";String replaceChar="文字";SpannableString replaceSp=SpannableStringUtil.replaceTextByImage(replaceStr,replaceChar,R.mipmap.ic_check);mTvReplaceByImage.setText(replaceSp);

######2.10 设置可点击

        //设置可点击String clickableStr="我是可以点击的";String clickableChar="点击";SpannableString clickableSp=SpannableStringUtil.setClickText(clickableStr, clickableChar, R.color.red, false, new View.OnClickListener() {@Overridepublic void onClick(View v) {showShort("我被点击了");}});mTvTextClick.setText(clickableSp);//必须设置才能响应点击事件mTvTextClick.setMovementMethod(LinkMovementMethod.getInstance());

######2.11 打电话

        //打电话String callStr="电话号码:13721057328";String callChar="13721057328";SpannableString callSp=SpannableStringUtil.callUp(callStr,callChar,callChar);mTvTextCall.setText(callSp);//必须设置才能响应点击事件mTvTextCall.setMovementMethod(LinkMovementMethod.getInstance());

######2.12 发邮件,短信,彩信

        //发邮件,短信,彩信String functionStr="发邮件,短信,彩信";String emailChar="邮件";String smsChar="短信";String mmsChar="彩信";String functionEmail="125489713@qq.com";String functionPhone="13721057328";SpannableString  functionSp1=SpannableStringUtil.sendEmail(functionStr,functionEmail,emailChar);SpannableString  functionSp2=SpannableStringUtil.sendSMS(functionSp1,functionPhone,smsChar);SpannableString  functionSp3=SpannableStringUtil.sendMMS(functionSp2,functionPhone,mmsChar);mTvTextFunction.setText(functionSp3);//必须设置才能响应点击事件mTvTextFunction.setMovementMethod(LinkMovementMethod.getInstance());

######2.13 打开地图,网页和超链接

        String geoStr="打开地图,网页和超链接";String longitude="121.4";//经度String latitude="121.4";//纬度SpannableString geoSp=SpannableStringUtil.sendGEO(geoStr,longitude,latitude,"地图");SpannableString webSp=SpannableStringUtil.openWeb(geoSp,"http://www.baidu.com","网页");SpannableString urlSp=SpannableStringUtil.setTextURL(webSp,"http://www.baidu.com","超链接");mTvTextGEO.setText(urlSp);//必须设置才能响应点击事件mTvTextGEO.setMovementMethod(LinkMovementMethod.getInstance());

######2.14 设置项目符号

        //设置项目符号String itemStr="设置项目符号";SpannableString itemSp=SpannableStringUtil.setTextItem(itemStr,10,R.color.black,itemStr);mTvTextItem.setText(itemSp);

######2.15 设置字体模糊ABCD和浮雕效果
注:设置浮雕效果需要在对应的mainfast的activity中添加android:hardwareAccelerated=“false”

        String effectStr="设置字体模糊ABCD和浮雕效果";SpannableString defultEffectSp=SpannableStringUtil.setTextFuzzy(effectStr,10, BlurMaskFilter.Blur.NORMAL,"A");SpannableString innerEffectSp=SpannableStringUtil.setTextFuzzy(defultEffectSp,10, BlurMaskFilter.Blur.INNER,"B");SpannableString outerEffectSp=SpannableStringUtil.setTextFuzzy(innerEffectSp,10, BlurMaskFilter.Blur.OUTER,"C");SpannableString solidEffectSp=SpannableStringUtil.setTextFuzzy(outerEffectSp,10, BlurMaskFilter.Blur.SOLID,"D");//设置浮雕效果需要在对应的mainfast的activity中添加android:hardwareAccelerated="false"SpannableString reliefEffectSp=SpannableStringUtil.setTextRelief(solidEffectSp,new float[]{10, 10, 10}, 0.5f, 1f, 1f,"浮雕");mTvTextEffect.setText(reliefEffectSp);

在mainfast中加入配置代码如下:

   <activity android:name=".MainActivity"android:hardwareAccelerated="false">//以下代码省略//......</activity>

#####三. SpannableStringUtil的综合使用
下面以实现有新消息展示有圆点为例:
实现代码如下:

        //综合使用,展示新消息小圆点String pointStr="新消息•";String pointFrontColorChar="•";SpannableString pointSizeSp=SpannableStringUtil.setTextSize(pointStr,pointFrontColorChar,2.2f);SpannableString pointFrontColorSp=SpannableStringUtil.setTextFrontColor(pointSizeSp,pointFrontColorChar,R.color.red);mTvTextPoint.setText(pointFrontColorSp);

#####四.效果图和项目结构图
实现小圆点的效果图

整体效果图

项目结构图
SpannableStringUtil实现丰富文字效果

代码地址如下:
http://www.demodashi.com/demo/15007.html

注:本文著作权归作者,由demo大师发表,拒绝转载,转载需要作者授权

SpannableStringUtil实现丰富文字效果相关推荐

  1. php生成文字闪烁,如何用jquery实现闪烁文字效果

    用jquery实现闪烁文字效果的方法:首先获取到最新一条记事的pid,并在添加成功后来闪动这条记事:然后闪动的方法可以写到函数里,直接调用:最后有闪动就要有定时器,开启定时器即可. 本教程操作环境:w ...

  2. java渐变色字体生成器_java阴影文字效果怎么做?渐变的怎么做?

    随着时代的不断发展,新兴技术的使用也促使人们不断地在学习进步.今天主要为大家介绍一下,java的阴影和渐变的文字效果怎么做. 首先为大家介绍的是阴影效果文字的做法.第一步:使用Graphics类的se ...

  3. 妙用 background 实现花式文字效果

    本文将讲解如何利用 background 系列属性,巧妙的实现一些花式的文字效果.通过本文,你将可以学到: 通过 background-size 与 background-position 实现酷炫的 ...

  4. H5在原生手机上显示选中文字效果

    H5在原生手机上显示选中文字效果 .comment {user-select: text;-webkit-user-select: text;-moz-user-select: text;-ms-us ...

  5. 文字抖动_如何用PS制作故障风文字效果

    今天教大家如何用PS制作故障文字效果 1.首先我们新建一个1920X1080宽高文档,背景颜色为黑色,72分辨率 2.使用文字工具,这里我输入Photoshop,调整文字的大小和位置,如下图 3.右键 ...

  6. devexpress textedit调整文字何文本框的间距_手把手教学:用PPT做效果超赞的文字效果...

    本文总计:2391 字 预计阅读时间:6 分钟 昨天文章的头图,貌似反馈还不错,挺多人比较感兴趣. 所以,今天就分享一下,这种文字排版效果,是怎么做出来的. 而且今天的实现手法与效果,做了一些优化,比 ...

  7. [css] 用css3实现伪3D的文字效果

    [css] 用css3实现伪3D的文字效果 <!DOCTYPE html> <html lang="en"><head><meta cha ...

  8. html鼠标悬停效果_【开发小技巧】023—如何使用HTML和CSS实现3D文字效果

    来源 | https://www.geeksforgeeks.org/create-a-3d-text-effect-using-html-and-css/3D文字效果是网页设计领域中最常用的文字效果 ...

  9. CSS和JS两种颜色渐变文字效果代码

    js实现颜色渐变文字效果代码: <!-- js颜色渐变色文字 --> <div id="moml"> <div style="text-al ...

最新文章

  1. linux cpu %us,Linux top里面%CPU和us%的解释
  2. 初学Java对某些问题的理解
  3. LINGO 12安装教程
  4. SpringBatch job执行流程分析(十六)
  5. ADS错误(Fatal)L6002U解决方法
  6. Session的底层实现原理
  7. 开源贡献 计算_使用此网站为开源做贡献
  8. Makefile 中的规则
  9. android:gravity与android:layout_gravity
  10. 【Python3网络爬虫开发实战】3.1.2-处理异常
  11. 防火墙旁挂,策略路由引流
  12. 心理们-位大师的50本书
  13. 将多张图片缩小合为一张图片(千图成像)
  14. 红外光学动作捕捉系统硬件安装使用教程
  15. matlab中断路器怎么表示什么,断路器的符号各代表什么意思
  16. 图片鉴黄的原理和应用
  17. 钝    生_拔剑-浆糊的传说_新浪博客
  18. WebSocket协议数据格式解析
  19. B1072 开学寄语(python)
  20. 基于 nRF SDK17.2,Nordic NFC 读写的实现。

热门文章

  1. 11.QT中同一个源文件对应两个不同的ui
  2. Cortex-M3的存储器系统
  3. 【蓝桥杯单片机】红外接收及NEC红外通信协议
  4. Linux输入子系统:输入设备编程指南 -- input-programming.txt
  5. 总结-最全linux工具的使用
  6. springcloud服务调用以及整合Hystrix
  7. android 沉浸式状态栏 兼容低版本,详解Android沉浸式实现兼容解决办法
  8. linux 将任务挂到后台,linux下使用screen或则nohup将任务放到后台运行
  9. java 正则 第一个出现的字符_如何用正则表达式通过第一个出现的字符进行拆分?...
  10. CURL 模拟post和get请求