Android——TextView指定字符串颜色高亮,实现类似微信、支付宝搜索结果中搜索字段高亮的效果
16lz
2021-01-24
代码:
/** * 设置指定字体高亮 * * @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));
效果:
更多相关文章
- Android截取字符串
- Android(安卓)Toast工具类大放送
- Android——读取含有双字节字符的TXT文件
- PHP,Android,IOS通信之 AES128加解密案例程序
- Android字符串格式化
- TextUtils用法
- Android之HttpPost与HttpGet使用
- android WebView loadData不能解析
- Android中如何处理Sqlite查询结果中的NULL数据列?