Android 实现部分文字高亮的三种方法
1.利用SpannableString、SpannableStringBuilder 实现
textview=(TextView)findViewById(R.id.textview);
SpannableStringBuilder style=new SpannableStringBuilder(strs);
style.setSpan(new BackgroundColorSpan(Color.RED),start,end,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
style.setSpan(new ForegroundColorSpan(Color.RED),7,9,Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
textview.setText(style);
详细用法参考:http://blog.csdn.net/harvic880925/article/details/38984705
2.利用一个容易遗忘的Html.fromhtml方法,意思是可以将比如文本框中的字符串进行HTML格式化
先在Sting文件中定义一个html代码的字符串,如:
"<font color='#e87400'>测试</font>"
Java代码
TextView view = (TextView)findViewById(R.id.sampleText);
String formattedText = getString(R.string.htmlFormattedText);
Spanned result = Html.fromHtml(formattedText);
view.setText(result);
或者是这样写:
view.setText(Html.fromHtml("<u>今天礼拜五</u>"));
3.利用开源库 HighlightTextView (https://github.com/angcyo/HighlightTextView)
使用方法:
下载项目
compile project(':highlighttextview')
xml可用属性
app:highlight_position="4" 高亮开始的位置
app:highlight_num="3" 高亮的个数
app:highlight_color="@color/colorAccent" 高亮的颜色
可用方法
highlightTextView.setHighlightPosition(2);
highlightTextView.setHighlightNum(3);
highlightTextView.setHighlightColor(Color.MAGENTA);