今天 项目中遇到,textview 设置两种,多种 颜色,用到的还很多,所以呢,就自己 封装了个 工具类,希望对大家 有帮助,直接上代码:
/** * textview设置2种颜色 */ public static void textViewShowTwoColor(TextView textView, String oneStr, String twoStr, String oneColor, String twoColor) { String focus_content = oneStr + twoStr;
SpannableStringBuilder builder = new SpannableStringBuilder(focus_content.toString()); ForegroundColorSpan redSpan = new ForegroundColorSpan( Color.parseColor(oneColor)); ForegroundColorSpan whiteSpan = new ForegroundColorSpan(Color.parseColor(twoColor)); builder.setSpan(redSpan, 0, oneStr.length(),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); builder.setSpan(whiteSpan, oneStr.length(), focus_content.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE); textView.setText(builder); }
/** * textview设置3种颜色 */ public static void textViewShowTwoColor(TextView textView, String oneStr, String twoStr,String threeStr, String oneColor, String twoColor,String threeColor) { // mholder.item_mfocus_content.setText(); String focus_content = oneStr + twoStr+threeStr; SpannableStringBuilder builder = new SpannableStringBuilder( focus_content.toString()); // ForegroundColorSpan 为文字前景色,BackgroundColorSpan为文字背景色 // ForegroundColorSpan redSpan = new ForegroundColorSpan(oneColor); // ForegroundColorSpan whiteSpan = new ForegroundColorSpan(twoColor); ForegroundColorSpan redSpan = new ForegroundColorSpan( Color.parseColor(oneColor)); ForegroundColorSpan whiteSpan = new ForegroundColorSpan( Color.parseColor(twoColor)); ForegroundColorSpan threeSapn = new ForegroundColorSpan( Color.parseColor(threeColor)); builder.setSpan(redSpan, 0, oneStr.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); builder.setSpan(whiteSpan, oneStr.length(), oneStr.length()+twoStr.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE); builder.setSpan(threeSapn, oneStr.length()+twoStr.length(), focus_content.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE); textView.setText(builder); }
其他的有需要,可以 根据我上面的改动