Android 实现部分文字高亮的三种方法

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代码的字符串,如:
"测试"

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("今天礼拜五"));


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);


你可能感兴趣的:(Android)