截取字符串,改变第N个字符的颜色;自定义方法,oncreat中调用

用到过很多次,每次在用的时候,思路就会断线,以此特意写出来,帮助自己记忆;

修改TextView 中部分文字的颜色

  1. textView = (TextView) findViewById(R.id.textview);  
  2. SpannableStringBuilder builder = new SpannableStringBuilder(textView.getText().toString());  
  3.   
  4. //ForegroundColorSpan 为文字前景色,BackgroundColorSpan为文字背景色  
  5. ForegroundColorSpan redSpan = new ForegroundColorSpan(Color.RED);  
  6. ForegroundColorSpan whiteSpan = new ForegroundColorSpan(Color.WHITE);  
  7. ForegroundColorSpan blueSpan = new ForegroundColorSpan(Color.BLUE);  
  8. ForegroundColorSpan greenSpan = new ForegroundColorSpan(Color.GREEN);  
  9. ForegroundColorSpan yellowSpan = new ForegroundColorSpan(Color.YELLOW);  
  10.   
  11.   
  12.   
  13. builder.setSpan(redSpan, 01, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);  
  14. builder.setSpan(whiteSpan, 12, Spannable.SPAN_INCLUSIVE_INCLUSIVE);  
  15. builder.setSpan(blueSpan, 23, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);  
  16. builder.setSpan(greenSpan, 34, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);  
  17. builder.setSpan(yellowSpan, 4,5, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);   
  18. textView.setText(builder);

  19.  

二、外部方法调用

private TextView tv_samplenumber_lan;

tv_samplenumber_lan=(TextView) findViewById(R.id.tv_samplenumber_lan);

tv_samplenumber_lan=dofor(tv_samplenumber_lan);

public static TextView dofor(TextView str){
    SpannableStringBuilder builder = new SpannableStringBuilder(str.getText().toString());
  //ForegroundColorSpan 为文字前景色,BackgroundColorSpan为文字背景色
    ForegroundColorSpan redSpan = new ForegroundColorSpan(Color.RED);
    if (str.getText().toString().substring(4,5).equals("*")){
    builder.setSpan(redSpan, 4,5, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    }else if (str.getText().toString().substring(7,8).equals("*")){
     builder.setSpan(redSpan, 7,8, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    }
    str.setText(builder);
    return str;
}


特意附上大神给讲解的实例代码

截取字符串,改变第N个字符的颜色;自定义方法,oncreat中调用_第1张图片

你可能感兴趣的:(截取字符串,改变第N个字符的颜色;自定义方法,oncreat中调用)