代码:

/** * 设置指定字体高亮 * * @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));

效果:

更多相关文章

  1. Android截取字符串
  2. Android(安卓)Toast工具类大放送
  3. Android——读取含有双字节字符的TXT文件
  4. PHP,Android,IOS通信之 AES128加解密案例程序
  5. Android字符串格式化
  6. TextUtils用法
  7. Android之HttpPost与HttpGet使用
  8. android WebView loadData不能解析
  9. Android中如何处理Sqlite查询结果中的NULL数据列?

随机推荐

  1. Android(安卓)屏幕适配
  2. Android(安卓)Studio系列教程二--基本设
  3. Android切近实战(六)
  4. Android内核开发:在源码树中添加新的app应
  5. 全能HOOK框架 JNI NATIVE JAVA ART DALVI
  6. 谈谈新窜起的新操作系统平台 - Android平
  7. android 通过lint以及android-resource-r
  8. Android学习记录(6)—将java中的多线程下载
  9. Android(安卓)setting中添加桌面循环滑动
  10. 尝试用Android获取IMEI,折腾的一天,结果只