Android中高亮变色显示文本中的关键字

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

 

Android中高亮变色显示文本中的关键字_第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 {

 

/**

 * 关键字高亮变色

 * 

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

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

你可能感兴趣的:(Android中高亮变色显示文本中的关键字)