(一)使用spanner
textView为需要改变字体颜色的控件
SpannableStringBuilder builder = new SpannableStringBuilder(textView.getText().toString());
//ForegroundColorSpan 为文字前景色,BackgroundColorSpan为文字背景色
int color=getResources().getColor(R.color.red);//R.color.red在color.xml中创建颜色
ForegroundColorSpan redSpan = new ForegroundColorSpan(color);
builder.setSpan(redSpan, 0, 2, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
/*它是用来标识在 Span 范围内的文本前后输入新的字符时是否把它们也应用这个效果。
分别有 Spanned.SPAN_EXCLUSIVE_EXCLUSIVE(前后都不包括)、
Spanned.SPAN_INCLUSIVE_EXCLUSIVE(前面包括,后面不包括)、
Spanned.SPAN_EXCLUSIVE_INCLUSIVE(前面不包括,后面包括)、
Spanned.SPAN_INCLUSIVE_INCLUSIVE(前后都包括)*/
textView.setText(builder);//必须将这步写上,将格式化的字体重置到控件上,不然显示不了效果
(二)使用HTML
(三)使用配置文件
android:textColor="@color/red"
textView为需要改变字体颜色的控件
SpannableStringBuilder builder = new SpannableStringBuilder(textView.getText().toString());
//ForegroundColorSpan 为文字前景色,BackgroundColorSpan为文字背景色
int color=getResources().getColor(R.color.red);//R.color.red在color.xml中创建颜色
ForegroundColorSpan redSpan = new ForegroundColorSpan(color);
builder.setSpan(redSpan, 0, 2, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
/*它是用来标识在 Span 范围内的文本前后输入新的字符时是否把它们也应用这个效果。
分别有 Spanned.SPAN_EXCLUSIVE_EXCLUSIVE(前后都不包括)、
Spanned.SPAN_INCLUSIVE_EXCLUSIVE(前面包括,后面不包括)、
Spanned.SPAN_EXCLUSIVE_INCLUSIVE(前面不包括,后面包括)、
Spanned.SPAN_INCLUSIVE_INCLUSIVE(前后都包括)*/
textView.setText(builder);//必须将这步写上,将格式化的字体重置到控件上,不然显示不了效果
(二)使用HTML
tv.setText(Html.fromHtml("我是<font color=blue>android</font>"));
tv.setText(Html.fromHtml("我是<font color=‘#ffffff’>android</font>"));
(三)使用配置文件
android:textColor="@color/red"