自定义RadioButton样式1

来源:互联网 发布:客户数据分析表 编辑:程序博客网 时间:2024/05/09 14:39


http://gundumw100.iteye.com/blog/1084377

 

主要是布局: 
Xml代码  收藏代码
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:orientation="vertical"  
  4.     android:layout_width="fill_parent"  
  5.     android:layout_height="fill_parent"  
  6.     >  
  7.     <RadioGroup android:gravity="center"  
  8.         android:layout_gravity="bottom"   
  9.         android:orientation="horizontal"  
  10.         android:layout_width="fill_parent"   
  11.         android:layout_height="wrap_content" >  
  12.         <RadioButton   
  13.             android:id="@+id/btn_0"  
  14.             android:textSize="17.0sp"   
  15.             android:textColor="@android:color/black"  
  16.             android:text="搜索微博"  
  17.             android:layout_weight="1"   
  18.             android:button="@null"  
  19.             android:checked="true"  
  20.             android:drawableLeft="@drawable/state_radio"  
  21.             android:background="@drawable/state_btn"  
  22.             android:gravity="center_vertical"  
  23.             >  
  24.         </RadioButton>  
  25.         <RadioButton   
  26.             android:id="@+id/btn_1"  
  27.             android:textSize="17.0sp"   
  28.             android:textColor="@android:color/black"  
  29.             android:text="搜索用户"  
  30.             android:layout_weight="1"   
  31.             android:button="@null"  
  32.             android:drawableLeft="@drawable/state_radio"  
  33.             android:background="@drawable/state_btn"  
  34.             android:gravity="center_vertical"  
  35.             >  
  36.         </RadioButton>  
  37.     </RadioGroup>  
  38. </LinearLayout>  

其中state_radio.xml 
Xml代码  收藏代码
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <selector  
  3.     xmlns:android="http://schemas.android.com/apk/res/android"  
  4.     >  
  5.     <item  
  6.         android:state_focused="false"  
  7.         android:state_checked="false"  
  8.         android:state_pressed="false"  
  9.         android:drawable="@drawable/bg_radio"  
  10.         >  
  11.     </item>  
  12.     <item  
  13.         android:state_focused="false"  
  14.         android:state_checked="true"  
  15.         android:state_pressed="false"  
  16.         android:drawable="@drawable/bg_radio_selected"  
  17.         >  
  18.     </item>  
  19.     <item  
  20.         android:state_focused="true"  
  21.         android:state_checked="false"  
  22.         android:state_pressed="false"  
  23.         android:drawable="@drawable/bg_radio_onfocus"  
  24.         >  
  25.     </item>  
  26.     <item  
  27.         android:state_focused="true"  
  28.         android:state_checked="true"  
  29.         android:state_pressed="false"  
  30.         android:drawable="@drawable/bg_radio_onfocus_selected"  
  31.         >  
  32.     </item>  
  33. </selector>  

state_btn.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_window_focused="false"        
  4.              android:drawable="@drawable/bg_btn"/>    
  5.        <item android:state_focused="true" android:state_pressed="true"           
  6.              android:drawable="@drawable/bg_btn_selected" />    
  7.        <item android:state_focused="false" android:state_pressed="true"      
  8.              android:drawable="@drawable/bg_btn_selected" />    
  9. </selector>  


上面的写法有点拖沓,采用style可能会更简单: 
Xml代码  收藏代码
  1. <?xml version="1.0" encoding="utf-8"?>   
  2. <resources>   
  3. <style name="CustomTheme" parent="android:Theme">   
  4.    <item name="android:radioButtonStyle">@style/RadioButton</item>   
  5. </style>   
  6. <style name="RadioButton" parent="@android:style/Widget.CompoundButton.RadioButton">   
  7.    <item name="android:button">@drawable/radio</item>   
  8. </style>   
  9. </resources>   

radio.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_checked="true" android:state_window_focused="false"   
  4.         android:drawable="@drawable/radio_hover" />   
  5.     <item android:state_checked="false" android:state_window_focused="false"   
  6.         android:drawable="@drawable/radio_normal" />   
  7.     <item android:state_checked="true" android:state_pressed="true"   
  8.         android:drawable="@drawable/radio_active" />   
  9.     <item android:state_checked="false" android:state_pressed="true"   
  10.         android:drawable="@drawable/radio_active" />   
  11.     <item android:state_checked="true" android:state_focused="true"   
  12.         android:drawable="@drawable/radio_hover" />   
  13.     <item android:state_checked="false" android:state_focused="true"   
  14.         android:drawable="@drawable/radio_normal_off" />   
  15.     <item android:state_checked="false" android:drawable="@drawable/radio_normal" />   
  16.     <item android:state_checked="true" android:drawable="@drawable/radio_hover" />   
  17. </selector>   
  • Test_radio.rar (50.2 KB)
  • 下载次数: 64
  • 查看图片附件
如何进行Radio Button Group的管理 参见 :
http://www.iteye.com/topic/1116261