Android中TextView的某一关键字高亮显示
16lz
2021-01-26
刚好碰到一个要在ListView的Item中显示搜索的关键字高亮显示。已经解决,现在讲代码贴出来。
调用的时候传入2个参数即可,1.要显示的文本。2.需要高亮的关键字。
import java.util.regex.Matcher;import java.util.regex.Pattern;import android.graphics.Color;import android.text.Spannable;import android.text.SpannableStringBuilder;import android.text.style.CharacterStyle;import android.text.style.ForegroundColorSpan;public class TextUtilTools {/** * 关键字高亮显示 * * @param target 需要高亮的关键字 * @param text 需要显示的文字 * @return spannable 处理完后的结果,记得不要toString(),否则没有效果 */public static SpannableStringBuilder highlight(String text, String target) {SpannableStringBuilder spannable = new SpannableStringBuilder(text);CharacterStyle span = null;Pattern p = Pattern.compile(target);Matcher m = p.matcher(text);while (m.find()) {span = new ForegroundColorSpan(Color.RED);// 需要重复!spannable.setSpan(span, m.start(), m.end(),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);}return spannable;}// 调用// SpannableStringBuilder textString = TextUtilTools.highlight(item.getItemName(), KnowledgeActivity.searchKey);// vHolder.tv_itemName_search.setText(textString);}
更多相关文章
- 关于Android加载图片时的OOM的一些解决方法和优化
- 【Android】Android中使用JNI调用底层C++代码
- 物联网温湿度显示控制项目(网页、Android双端显示&搭载linux平台
- Android(安卓)Intent机制实例详解(1)
- Android(安卓)开发初级入门:注册谷歌地图 API 密钥和显示谷歌地图
- Android(安卓)UI【Android(安卓)仿Iphone文件夹分裂效果】
- 调用Android自带日历功能
- [Android]如何做一个崩溃率少于千分之三噶应用app(7)-跨module交互
- Android系统下如何通过外设实现GPIO中断触发调用Android程序执行