android中搜索关键字高亮

  1. <span style="font-size:18px;">import android.graphics.Color;  
  2. import android.support.v7.app.ActionBarActivity;  
  3. import android.os.Bundle;  
  4. import android.text.SpannableString;  
  5. import android.text.Spanned;  
  6. import android.text.style.ForegroundColorSpan;  
  7. import android.widget.TextView;  
  8.   
  9. import java.util.regex.Matcher;  
  10. import java.util.regex.Pattern;  
  11.   
  12.   
  13. public class MainActivity extends ActionBarActivity {  
  14.     private TextView tv;  
  15.   
  16.     @Override  
  17.     protected void onCreate(Bundle savedInstanceState) {  
  18.         super.onCreate(savedInstanceState);  
  19.         setContentView(R.layout.activity_main);  
  20.   
  21.         tv = (TextView) findViewById(R.id.tv);  
  22.   
  23.         tv.setText(setKeyWordColor("aadfdkfdjf你大理石","你"));  
  24.     }  
  25.   
  26.     /** 
  27.      * 设置搜索关键字高亮 
  28.      * @param content 原文本内容 
  29.      * @param keyword 关键字 
  30.      */  
  31.     private SpannableString setKeyWordColor(String content,String keyword){  
  32.         SpannableString s = new SpannableString(content);  
  33.         Pattern p = Pattern.compile(keyword);  
  34.         Matcher m = p.matcher(s);  
  35.         while (m.find()){  
  36.             int start = m.start();  
  37.             int end = m.end();  
  38.             s.setSpan(new ForegroundColorSpan(Color.RED),start,end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  
  39.         }  
  40.         return s;  
  41.     }  
  42. }  
  43. </span> 

猜你喜欢

转载自blog.csdn.net/xiaodongvtion/article/details/54572083