按鈕文字變色
我們首先添加一個ColorStateList資源XML文件,XML文件保存在res/color/button_text.xml:
[代碼]xml代碼:
1 |
<? xml version = "1.0" encoding = "utf-8" ?>
|
2 |
< selector xmlns:android = "http://schemas.android.com/apk/res/android" >
|
3 |
< item android:state_pressed = "true"
|
4 |
android:color = "#ffff0000" />
|
5 |
< item android:state_focused = "true"
|
6 |
android:color = "#ff0000ff" />
|
7 |
< item android:color = "#ff000000" />
|
[代碼]java代碼:
1 |
Button btn=(Button)findViewById(R.id.btn); |
2 |
Resources resource=(Resources)getBaseContext().getResources(); |
3 |
ColorStateList csl=(ColorStateList)resource.getColorStateList(R.color.button_text); |
5 |
btn.setTextColor(color_state_list);
|
或者也可以這樣:
[代碼]java代碼:
1 |
XmlResourceParser xpp=Resources.getSystem().getXml(R.color.button_text); |
3 |
ColorStateList csl= ColorStateList.createFromXml(getResources(),xpp);
|
5 |
} catch (Exception e) {
|
最後附上所有可能出現的狀態:
[代碼]xml代碼:
01 |
<? xml version = "1.0" encoding = "utf-8" ?>
|
02 |
< selector xmlns:android = "http://schemas.android.com/apk/res/android" >
|
04 |
android:color = "hex_color"
|
05 |
android:state_pressed=["true" | "false"]
|
06 |
android:state_focused=["true" | "false"]
|
07 |
android:state_selected=["true" | "false"]
|
08 |
android:state_active=["true" | "false"]
|
09 |
android:state_checkable=["true" | "false"]
|
10 |
android:state_checked=["true" | "false"]
|
11 |
android:state_enabled=["true" | "false"]
|
12 |
android:state_window_focused=["true" | "false"] />
|