Android工具类篇 高亮变色显示文本中的关键字
Posted 彭老希
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android工具类篇 高亮变色显示文本中的关键字相关的知识,希望对你有一定的参考价值。
import android.text.SpannableString;
import android.text.Spanned;
import android.text.style.ForegroundColorSpan;
import android.util.Log;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* @author : penglaoxi
* @version : v1.0.0
* @ClassName : KeywordUtil.java
* @Function :
* @Description :
* @Idea :
* {@link }
* @Encourage :Do everything you can right now, and then decide.
* 全力以赴,历而后择。
* @date : 2021/8/24
*/
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();
Log.i("position","start = " + start + "end = " + 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;
}
}
以上是关于Android工具类篇 高亮变色显示文本中的关键字的主要内容,如果未能解决你的问题,请参考以下文章