android 自定义 radiobutton 文字颜色随选中状态而改变

来源:互联网 发布:儋州网络在逃人员 编辑:程序博客网 时间:2024/05/21 20:28

第一部分:转自http://blog.csdn.net/hpccn/article/details/7591662?reload

先看效果



主要是写一个 color selector

在res/建一个文件夹取名color

res/color/color_radiobutton.xml

[html] view plaincopy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <selector xmlns:android="http://schemas.android.com/apk/res/android">  
  3.   
  4.   
  5.     <item android:state_checked="true" android:color="@color/color_text_selected"/>  
  6.     <!-- not selected -->  
  7.     <item android:color="@color/color_text_normal"/>  
  8.   
  9.   
  10. </selector>  

程序中就可以直接使用了

[html] view plaincopy
  1. //layout/main.xml  
  2. <?xml version="1.0" encoding="utf-8"?>  
  3. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  4.     android:layout_width="fill_parent"  
  5.     android:layout_height="fill_parent"  
  6.     android:orientation="vertical" >  
  7.     <RadioGroup  
  8.         android:id="@+id/radiogroup_personal_condition"  
  9.         android:layout_width="wrap_content"  
  10.         android:layout_height="wrap_content"  
  11.         android:orientation="horizontal" >  
  12.         <RadioButton  
  13.             android:id="@+id/radiobutton_1"  
  14.             android:layout_width="wrap_content"  
  15.             android:layout_height="wrap_content"  
  16.             android:background="@drawable/selector_radio"  
  17.             android:button="@null"  
  18.             android:checked="true"  
  19.              android:gravity="center"  
  20.              android:text="目录"  
  21.             android:textColor="@color/color_radiobutton"  
  22.             android:textSize="@dimen/font_size"  
  23.             android:textStyle="bold" />  
  24.         <RadioButton  
  25.             android:id="@+id/radiobutton_2"  
  26.             android:layout_width="wrap_content"  
  27.             android:layout_height="wrap_content"  
  28.             android:background="@drawable/selector_radio"  
  29.             android:button="@null"  
  30.              android:gravity="center"  
  31.              android:text="书签"  
  32.             android:textColor="@color/color_radiobutton"  
  33.             android:textSize="@dimen/font_size"  
  34.             android:textStyle="bold" />  
  35.     </RadioGroup>  
  36. </LinearLayout>  


第二部分:原创

如果使用代码生成第一部分效果该如何实现呢?

第一步,同样需要res/color/color_radiobutton.xml

第二步:
//该方法加载不同状态的颜色组合 ColorStateList csl = getResources().getColorStateList(R.color.color_sub_categories_radio_button); radioButton.setTextColor(csl);

最后附上所有可能出现的状态:


<?xml version="1.0" encoding="utf-8"?>     <selector xmlns:android="http://schemas.android.com/apk/res/android" >         <item             android:color="hex_color"             android:state_pressed=["true" | "false"]             android:state_focused=["true" | "false"]             android:state_selected=["true" | "false"]             android:state_active=["true" | "false"]             android:state_checkable=["true" | "false"]             android:state_checked=["true" | "false"]             android:state_enabled=["true" | "false"]             android:state_window_focused=["true" | "false"] />     </selector> 





原创粉丝点击