应该是好久没有写有关技术类的文章了,前天还有人在群里问我,说群主很长时间没有分享干货了,今天分享一篇Android中TextView在大段的文字内容中如何让关键字高亮变色的文章 ,希望对大家有所帮助,我终于在歪路上回归正途了。这个篇文章在平时应该还算比较常用吧,如果你会了,就不用看了,如果还不会,可以看一眼,非常简单。

今天分享的文章大概内容是在TextView中如何使大段的文字内容中关键字变色高亮显示的,分为一个关键字高亮变色显示和多个关键字一起高亮变色显示。我已经封装成了KeywordUtil工具类,可以直接调用,效果图如下:

具体代码如下:

package net.loonggg.test;

import java.util.regex.Matcher;
import java.util.regex.Pattern; import android.text.SpannableString;
import android.text.Spanned;
import android.text.style.ForegroundColorSpan; public class KeywordUtil { /**
* 关键字高亮变色
*
* @param color
* 变化的色值
* @param text
* 文字
* @param keyword
* 文字中的关键字
* @return
*/
public static SpannableString matcherSearchTitle(int color, String text,
String keyword) {
SpannableString s = new SpannableString(text);
Pattern p = Pattern.compile(keyword);
Matcher m = p.matcher(s);
while (m.find()) {
int start = m.start();
int end = m.end();
s.setSpan(new ForegroundColorSpan(color), start, end,
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
}
return s;
} /**
* 多个关键字高亮变色
*
* @param color
* 变化的色值
* @param text
* 文字
* @param keyword
* 文字中的关键字数组
* @return
*/
public static SpannableString matcherSearchTitle(int color, String text,
String[] keyword) {
SpannableString s = new SpannableString(text);
for (int i = 0; i < keyword.length; i++) {
Pattern p = Pattern.compile(keyword[i]);
Matcher m = p.matcher(s);
while (m.find()) {
int start = m.start();
int end = m.end();
s.setSpan(new ForegroundColorSpan(color), start, end,
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
}
}
return s;
}
}

其实看完代码就知道了,非常简单。大家可以试一试哦!获取demo的方法跟以前一样,只需在公众号里回复关键字“5”即可获得。

【特别推荐↓】


微信公众号:smart_android ,公众号[非著名程序员]可能是东半球最好的技术分享公众号。每天,每周定时推送一些有关移动开发的原创文章和教程。

「非著名程序员」本人建立了一个高端Android微信交流群,如果有想加入的请先加我个人微信号:loonggg ,具体加入条件非常简单,加我个人微信号时,请备注为:加群,到时会告诉你具体的加入流程,感谢

最新文章

  1. iOS 为键盘添加隐藏按钮
  2. MapReduce的ReduceTask任务的运行源码级分析
  3. String,StringBuffer
  4. [python爬虫] Selenium定向爬取虎扑篮球海量精美图片
  5. 使用BroadcastReceiver实现系统对手机电量进行提示
  6. [vijos P1014] 旅行商简化版
  7. 服务器之间socket传输单链接和多连接测试结果
  8. python实现二分查找与冒泡排序
  9. Python网络爬虫 | Scrapy爬取妹子图网站全站照片
  10. Gogs搭建教程-极易搭建的自助 Git 服务
  11. Linux的动态库与静态库
  12. windows ip路由
  13. java io系列24之 BufferedWriter(字符缓冲输出流)
  14. 【分布式事务】阿里fescar
  15. Nop常用知识点
  16. Telegraf+InfluxDB+Grafana快速搭建实时监控系统 监控postgresql
  17. 《Python》 内置函数
  18. pip常用操作指令
  19. 防止DDoS攻击,每5分钟监控本机的web服务,将目前已经建立连接的IP计算出来,且实现top5。再此基础上,将并发连接超过50的IP禁止访问web服务
  20. style=&quot;visibility: hidden&quot;和 style=“display:none”之间的区别

热门文章

  1. 【mysql】关于乐观锁
  2. C语言出错问题汇总【需要更新】
  3. Android 的提权 (Root) 原理是什么?
  4. 报表session与应用session常识普及
  5. python log
  6. js中的冒泡排序以及实现一个数组中得最到最大的数字小例
  7. Visual Studio 代码折叠快捷键(摘要)
  8. 第9章 用内核对象进行线程同步(2)_可等待计时器(WaitableTimer)
  9. webform:分页组合查询
  10. eclipse大括号高亮显示---颜色很淡,改为显眼的颜色