代码:
/** * 设置指定字体高亮 * * @return CharSequence型字符串 */ public static CharSequence getHighLightText(Context context, String text, String keyword) { SpannableStringBuilder style = new SpannableStringBuilder(text); if (!keyword.isEmpty()) { int base = 0;//基准index,表示每一次进行字符串截取之后,新字符字符串的开始index相对于text原始字符串的位置 int start; do { Log.i("getHighLightText", "现在的text:" + text); start = text.indexOf(keyword); int end; if (start >= 0) { end = start + keyword.length(); style.setSpan( new ForegroundColorSpan(ContextCompat.getColor(context, R.color.colorHighLightText)), base + start, base + end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); text = text.substring(end); base += end; } } while (start >= 0 && text.length() > 0); } return style; }
在页面中对应的textview设置text:
textView.setText( getHighLightText(context, text, keyword));
效果: