android 如何讓文本中某個關鍵字高亮顯示?


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

/*******************************************************/
 
  1. SpannableStringBuilder style = new SpannableStringBuilder("test Height light");
  2. //參數一:高亮顏色[ForegroundColorSpan前景色]
  3. //from:高亮開始
  4. //to:高亮結束
  5. style.setSpan(new ForegroundColorSpan(color), from, to, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
  6. (TextView)view.setText(style);
 /*******************************************************/
可以使用以下兩種方法來實現:

1.用Html類的fromHtml()方法格式化要放到TextView里的文字。這種方法不僅能夠高亮部分文字,而且還能夠使用HTML里面方式來格式化文字,顯示出各種效果。

  1. TextView.setText(Html.fromHtml("<font color=#FF0000>hello</font>"));
 

上述代碼把hello設置成紅色。
2.使用Spannable或實現它的類,如SpannableString。Spannable對象也可以實現一樣的效果

  1. SpannableString ss = new SpannableString("abcdefgh");
  2. ss.setSpan(new BackgroundColorSpan(Color.RED), 2, 4, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
  3. TextView.setText(ss);
 

上述代碼把[2,4)之間的字符設置成紅色,也就是c和d。

 
 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM