android中设置TextView的颜色有方法setTextColor,这个方法被重载了,可以传入两种参数。一种方法是传入int color值,要注意这个int不是R文件中自动分配的十六进制int值,这是Color类中的静态方法构造出来的颜色int值。另一种方法是通过ColorStateList得到xml中的配置的颜色的。好多需要xml中配置的都要类似这样的映射xml文件(比如一个按钮事件的选择器,默认状态为颜色A,点击时状态为颜色B等等选择效果)。
setTextColor的两种重载方法如下:
public void setTextColor(int color) {
mTextColor = ColorStateList.valueOf(color);
updateTextColors();
}
public void setTextColor(ColorStateList colors) {
if (colors == null) {
throw new NullPointerException();
}
mTextColor = colors;
updateTextColors();
}
第一种重载方法有以下实现方式:
方法一:通过ARGB值的方式
textview.setTextColor(Color.rgb(255,255, 255));
textview.setTextColor(Color.parseColor("#FFFFFF"));
方法二:通过资源引用
textview.setTextColor(mContext.getResources().getColor(R.drawable.contact_btn_text_red))
<drawablename="contact_btn_text_red">#f2497c</drawable>
第二种重载方法的实现:
textview.setTextColor(mContext.getResources().getColorStateList(R.drawable.big_btn_text_color));
选择器big_btn_text_color.xml
<span style="font-size:18px;"><?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 按下 -->
<item android:color="@drawable/contact_btn_text_white" android:state_enabled="true" android:state_pressed="true"></item>
<!-- 默认 →
<item android:color="@drawable/contact_btn_text_red" android:state_enabled="true" android:state_pressed="false"></item>
<!-- 禁用 -->
<item android:color="@drawable/contact_btn_text_gray" android:state_enabled="false"></item>
</selector>
</span>