一、在xml中修改颜色
1、首先贴上/res/values/color色值
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="black">#000000</color>
<color name="white">#ffffff</color>
</resources>
2、贴上/res/drawable/text_color_selector.xml颜色选择器
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/black" android:state_pressed="true"></item>
<item android:color="@color/white"></item>
</selector>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.testcolor.MainActivity" >
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@drawable/text_color_selector"
android:text="@string/text_click_state" />
<!-- @string/text_click_state -->
<!-- <string name="text_click_state">字体点击效果</string> -->
</RelativeLayout>
二、在代码中修改颜色
我们首先添加一个ColorStateList资源XML文件,XML文件保存在res/color/button_text.xml:
<span style="font-size:14px;"><?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:color="#ffff0000"/> <!-- pressed -->
<item android:state_focused="true" android:color="#ff0000ff"/> <!-- focused -->
<item android:color="#ff000000"/> <!-- default -->
</selector></span>
<span style="font-size:14px;">Button btn=(Button)findViewById(R.id.btn);
Resources resource=(Resources)getBaseContext().getResources();
ColorStateList csl=(ColorStateList)resource.getColorStateList(R.color.button_text);
if(csl!=null){
btn.setTextColor(color_state_list);//设置按钮文字颜色
}</span>
或者可以这样:
<span style="font-size:14px;">XmlResourceParser xpp=Resources.getSystem().getXml(R.color.button_text);
try {
ColorStateList csl= ColorStateList.createFromXml(getResources(),xpp);
btn.setTextColor(csl);
} catch (Exception e) {
// TODO: handle exception
} </span>
运行之后点击按钮就可以看到字体的颜色变化了