在这里先看看效果图:

OK,有时候,在我们的项目中会要求TextView中文本有一部分的字体颜色不一样。这时我们应该使用

SpannableStringBuilder这个工具类,当然这个类的功能非常强大,这里我仅仅是实现上面的样式。其他的不做介绍。

SpannableStringBuilder的实现接口是Spannable这个接口,而Spannable终于都实现了CharSequence,因此我们直

接能够通过TextView.setText()来进行设置。

以下给出实现代码:

public class StringFormatUtil {private SpannableStringBuilder spBuilder;private String wholeStr, highlightStr;private Context mContext;private int color;private int start = 0, end = 0;/*** * @param context* @param wholeStr 所有文字* @param highlightStr 改变颜色的文字* @param color 颜色*/public StringFormatUtil(Context context,String wholeStr,String highlightStr,int color){this.mContext=context;this.wholeStr=wholeStr;this.highlightStr=highlightStr;this.color=color;}public StringFormatUtil fillColor(){if(!TextUtils.isEmpty(wholeStr)&&!TextUtils.isEmpty(highlightStr)){if(wholeStr.contains(highlightStr)){/**  返回highlightStr字符串wholeStr字符串中第一次出现处的索引。*/start=wholeStr.indexOf(highlightStr);end=start+highlightStr.length();}else{return null;}}else{return null;}spBuilder=new SpannableStringBuilder(wholeStr);color=mContext.getResources().getColor(color);CharacterStyle charaStyle=new ForegroundColorSpan(color);spBuilder.setSpan(charaStyle, start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);return this;}public SpannableStringBuilder getResult(){if (spBuilder != null) {return spBuilder;}return null;}
}

当然上面的第一步是获取你要改变颜色的文字的起始位置到结束位置,接着通过SpannableStringBuilder来改变文字

的颜色。

public class MainActivity extends Activity {private TextView tv_show;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initView();}private void initView() {tv_show = (TextView) findViewById(R.id.tv_show);String wholeStr = "想要改变后面的颜色这是要改变的颜色";StringFormatUtil spanStr = new StringFormatUtil(this, wholeStr,"这是要改变的颜色", R.color.blue).fillColor();tv_show.setText(spanStr.getResult());}}

转载请注明出处:http://blog.csdn.net/hai_qing_xu_kong/article/details/44225955 情绪控_

转载于:https://www.cnblogs.com/yangykaifa/p/7229849.html

一起学android之怎样设置TextView中不同字段的字体颜色(22)相关推荐

  1. Android之如何设置TextView中不同字段的字体颜色

    在这里先看看效果图: OK,有时候,在我们的项目中会要求TextView中文本有一部分的字体颜色不一样,这时我们应该使用 SpannableStringBuilder这个工具类,当然这个类的功能很强大 ...

  2. Android利用SpannableStringBuilder设置TextView中部分文字的颜色...

    原文:android - SpannableString或SpannableStringBuilder以及string.xml文件中的整型和string型代替 背景介绍 在开发应用过程中经常会遇到显示 ...

  3. 设置TextView中超链接字体颜色、下划线

    ClickableSpan:这是超链接相关的样式控制和点击事件的控制类,我们需要对它进行继承,然后修改成我们需要的样式.其中,可以对超链接文本字符进行颜色.字体大小.字体.下划线.点击事件的自定义控制 ...

  4. Android TextView中设定个别文字字体显示格式

    Android TextView中设定个别文字字体显示格式 文章分类:移动开发 用Html来格式化字符,例如要实现如下的显示: "这只是一个测试字符串,测试黑体字.斜体字.下划线.红色字的显示." 可 ...

  5. VB 设置ListView中指定一行的背景颜色

    代码如下: 'SetListViewBGColor(ListView控件名称,要设置的背景颜色行号,颜色值-默认:&HB6B4FF) Public Sub SetListViewBGColor ...

  6. 设置Layui表格字段的字体颜色

    设置Layui表格字段的字体颜色 开发工具与关键技术:VS MVC 作者:木林森 撰写时间:2019年 7 月 26 日 我们在使用layui表格对的时候,经常会有特殊字段需要显示出来,比如金额.状态 ...

  7. Android 安卓状态栏工具类(沉浸式、字体颜色等)

    文章目录 使用案例(Kotlin) 工具类 StatusBarUtil 使用案例(Kotlin) //沉浸式实现 StatusBarUtil.immersive(this)//填充View //id: ...

  8. 用html在黑色背景中写蓝色的字,一般设计中常见黑色背景可搭配字体颜色有()...

    一般设计中常见黑色背景可搭配字体颜色有() 更多相关问题 冷色的皮肤是偏()色的底调 牵引变电所向接触网正常供电的方式有两种:单边供电和( 从键盘上按顺序输入两个整数(输入时用一个空格分隔)给变量x, ...

  9. idea中*mapper.xml文件字体颜色变成黄色的解决办法

    idea中*mapper.xml文件字体颜色变成黄色的解决办法 问题描述: 今天在写*Mapper.xml文件时,发现此文件中代码的颜色变成黄色了,没有办法使用idea的提示功能,具体如下: 解决方案 ...

最新文章

  1. 1.JSONObject与JSONArray的使用
  2. C# Json 序列化与反序列化二
  3. LeetCode Integer Replacement
  4. ECSHOP在打印订单时打印出商品序号
  5. chart控件做实时曲线显示_用PyQt5.QtChart实现动态曲线图
  6. Oracle init.ora常用配置详解
  7. io多路复用的原理和实现_IO多路复用的三种机制:select 、poll 、epoll
  8. Thread.sleep还是TimeUnit.SECONDS.sleep
  9. Rand函数使用和对补码的理解
  10. 【HDU】1695 GCD
  11. Using Swift with Cocoa and Objective-C(Swift 2.0版):开始--基础设置-备
  12. qt web混合编程_VS2017+QT 混合编程-在VS控制台程序配置QT
  13. h5如何动态获取键盘高度_H5 键盘兼容性小结
  14. Dev ChartControl
  15. LTE CAT M1模块为辅助生活系统提供了宽带和智能手机的替代方案
  16. 展望2019年:未来一年的WordPress
  17. solr读取word,pdf
  18. QQ聊天对话框(Js实现,支持表情插入文本中间)
  19. 图的邻接矩阵和邻接表
  20. Rust语法之if语句

热门文章

  1. 微信小程序开发第二弹
  2. 目标检测R-CNN模型的CNN模块微调过程分析【全网最易懂】
  3. Android移动开发之【Android实战项目】DAY9-LineChart的使用
  4. 2015中学计算机考试题,2017年初中信息技术考试试题及答案
  5. 上海网络推广为大家讲解细节标签能给网站带来的作用与效果!
  6. 网站优化如何摆脱竞争对手,将排名做到首页?
  7. 优化网站设计方案提升网站用户回头率
  8. 查看磁盘uuid命令_Win10推出新的命令行工具,可以查看磁盘空间使用情况
  9. oracle 64位客户端_oracle的管理工具toad如何设置命令补全
  10. python编写异常处理_Python 简明教程 --- 23,Python 异常处理