android 如何让文本中某个关键字高亮显示?
2015-08-05 14:54
531 查看
TextView tv = (TextView) findViewById(R.id.hello);
SpannableString s = new SpannableString(getResources().getString(R.string.linkify));
Pattern p = Pattern.compile("abc");
Matcher m = p.matcher(s);
while (m.find()) {
int start = m.start();
int end = m.end();
s.setSpan(new ForegroundColorSpan(Color.RED), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
}
tv.setText(s);
/*******************************************************/
SpannableStringBuilder style = new SpannableStringBuilder("test Height light");
//参数一:高亮颜色[ForegroundColorSpan前景色]
//from:高亮开始
//to:高亮结束
style.setSpan(new ForegroundColorSpan(color), from, to, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
(TextView)view.setText(style);
/*******************************************************/
可以使用以下两种方法来实现:
1.用Html类的fromHtml()方法格式化要放到TextView里的文字。这种方法不仅能够高亮部分文字,而且还能够使用HTML里面方式来格式化文字,显示出各种效果。
TextView.setText(Html.fromHtml("<font color=#FF0000>hello</font>"));
上述代码把hello设置成红色。
2.使用Spannable或实现它的类,如SpannableString。Spannable对象也可以实现一样的效果
SpannableString ss = new SpannableString("abcdefgh");
ss.setSpan(new BackgroundColorSpan(Color.RED), 2, 4, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
TextView.setText(ss);
上述代码把[2,4)之间的字符设置成红色,也就是c和d。
SpannableString s = new SpannableString(getResources().getString(R.string.linkify));
Pattern p = Pattern.compile("abc");
Matcher m = p.matcher(s);
while (m.find()) {
int start = m.start();
int end = m.end();
s.setSpan(new ForegroundColorSpan(Color.RED), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
}
tv.setText(s);
/*******************************************************/
SpannableStringBuilder style = new SpannableStringBuilder("test Height light");
//参数一:高亮颜色[ForegroundColorSpan前景色]
//from:高亮开始
//to:高亮结束
style.setSpan(new ForegroundColorSpan(color), from, to, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
(TextView)view.setText(style);
/*******************************************************/
可以使用以下两种方法来实现:
1.用Html类的fromHtml()方法格式化要放到TextView里的文字。这种方法不仅能够高亮部分文字,而且还能够使用HTML里面方式来格式化文字,显示出各种效果。
TextView.setText(Html.fromHtml("<font color=#FF0000>hello</font>"));
上述代码把hello设置成红色。
2.使用Spannable或实现它的类,如SpannableString。Spannable对象也可以实现一样的效果
SpannableString ss = new SpannableString("abcdefgh");
ss.setSpan(new BackgroundColorSpan(Color.RED), 2, 4, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
TextView.setText(ss);
上述代码把[2,4)之间的字符设置成红色,也就是c和d。
相关文章推荐
- Android DVM
- Android屏幕适配之图片适配
- Android动画之translate(位移动画)
- Android编程权威指南-第十七章挑战练习
- android应用生命周期
- Android 谷歌 开源 通信框架 VOLLEY(六)——应用实例
- Android图片下载缓存库picasso解析
- Android 自定义ViewGroup 实现流式布局
- 深入解析Android的自定义布局
- Android L 5.0 上紧急电话EmergencyCall与普通电话在MO流程上的区别
- Android学习笔记——声明
- Android init进程——属性服务
- android 问题集锦
- Android编译过程详解(三)
- Android 图形:绘制渐变色奥运五环图形,游戏文字,验证码,Matrix旋转,缩放,倾斜,平移等
- Android编译过程详解(二)
- Android编译过程详解(一)
- Android优化之代码优化
- android studio sdk更新 (2015-8-5)
- Android学习笔记——Android生命周期