博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android中高亮变色显示文本中的关键字
阅读量:6683 次
发布时间:2019-06-25

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

hot3.png

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

 

640?wx_fmt=png&wxfrom=5&wx_lazy=1

 

具体代码如下:

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 {

 

/**

 * 关键字高亮变色

 * 

 * color

 * 变化的色值

 * text

 * 文字

 * keyword

 * 文字中的关键字

 *

 */

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;

}

 

/**

 * 多个关键字高亮变色

 * 

 * 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”即可获得。

转载于:https://my.oschina.net/JiangTun/blog/910900

你可能感兴趣的文章
dropna(thresh=n) 的用法
查看>>
Harbor镜像仓库漏洞扫描功能
查看>>
杂谈(20)写给妹妹的信-完整版
查看>>
边界在消失——2014年七大技术趋势预测
查看>>
综合考虑各系统的平衡——中科曙光数据中心产品事业部总经理沈卫东谈云数据中心节能...
查看>>
MongoDB +node.js图片读取服务
查看>>
关于jmeter里的自动重定向的使用-小强性能测试培训班学生作品
查看>>
我的友情链接
查看>>
将CDM中所有以Relatonship_开头的关系全部重命名,避免生成数据库因为重复关系名报错...
查看>>
C++ 标准库之algorithm
查看>>
系统限制和选项limit(一)
查看>>
Boson 6.0 试验笔记一
查看>>
隐藏滚动条 但是可以滚动
查看>>
PHP 文件操作的各种姿势
查看>>
Javascript语言精粹之正则表达式知识整理
查看>>
pymysql模块
查看>>
[转] 钉钉的H5性能优化方案
查看>>
Bash 如何取得当前正在执行的脚本的绝对路径?
查看>>
day1作业--登录接口
查看>>
python基础之函数基础
查看>>