按钮文字变色
我们首先添加一个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" /> <!-- pressed --> |
5 | < item android:state_focused = "true" |
6 | android:color = "#ff0000ff" /> <!-- focused --> |
7 | < item android:color = "#ff000000" /> <!-- default --> |
8 | </ selector > |
[代码]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); |
4 | if (csl!= null ){ |
5 | btn.setTextColor(color_state_list); //设置按钮文字颜色 |
6 | } |
[代码]java代码:
1 | XmlResourceParser xpp=Resources.getSystem().getXml(R.color.button_text); |
2 | try { |
3 | ColorStateList csl= ColorStateList.createFromXml(getResources(),xpp); |
4 | btn.setTextColor(csl); |
5 | } catch (Exception e) { |
6 | // TODO: handle exception |
7 | } |
[代码]xml代码:
01 | <? xml version = "1.0" encoding = "utf-8" ?> |
02 | < selector xmlns:android = "http://schemas.android.com/apk/res/android" > |
03 | < item |
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"] /> |
13 | </ selector > |