Android 高亮显示文本中的关键字

总结: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、想匹配多个,就用以上方法,用关键字数组,自己抽取出一个方法进行设置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值