总结:SpannableString用好,可以各种替换Span来操作各种内容
1、文本关键字高亮关键在于:SpannableString使用
主要就是通过关键字在文本的开始index,结束index来定位到位置,设置该范围的字体颜色。
1 SpannableString ssLight = new SpannableString(文本字符串); 2 ssPM.setSpan(new ForegroundColorSpan(getResources().getColor(R.color.white)), 0, 7, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); 3 ssPM.setSpan(new ForegroundColorSpan(getResources().getColor(R.color.blue)), 8, 10, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); 4 tv_light.setText(ssLight);
2、如何定位到关键字在文本的index:正则表达式
主要就是通过正则表达式find:找到关键字在文本的开始index,结束index
1 SpannableString ssLight = new SpannableString(文本字符串); 2 Pattern p = Pattern.compile(关键字字符串); 3 Matcher m = p.matcher(s); 4 while (m.find()) { 5 int startIndex = m.start(); 6 int endIndex = m.end(); 7 ssLight.setSpan(new ForegroundColorSpan(getResource.getColor(R.color.white)), startIndex, endIndex, 8 Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); 9 } 10 tv_light.setText(ssLight);
3、想匹配多个,就用以上方法,用关键字数组,自己抽取出一个方法进行设置。