android 自定義RadioButton樣式

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

 
上面這種3選1的效果如何作呢?用代碼寫? 
其實有更簡單的辦法,忘了RadioButton有什麼特性了嗎? 
我就用RadioButton實現瞭如上效果,其實很簡單的。 
首先定義一張background,命名爲radio.xml,注意該background必須爲xml樣式的圖片: 
android

Xml代碼  收藏代碼佈局

<?xml version="1.0" encoding="utf-8"?>   
<selector xmlns:android="http://schemas.android.com/apk/res/android">   
    <item   
    android:state_checked="false"   
    android:drawable="@drawable/tabswitcher_long" />   
    <item   
    android:state_checked="true"   
    android:drawable="@drawable/tabswitcher_short" />   
</selector>

   

這裏咱們只要關心state_checked狀態就能夠了。因此很簡單的配置。 
接下來就是佈局文件裏面引用這張圖片了: 
spa

Java代碼  收藏代碼code

<RadioGroup  
        android:gravity="center"  
        android:orientation="horizontal"    
        android:layout_width="fill_parent"     
        android:layout_height="wrap_content"  
        >  
        <RadioButton     
            android:id="@+id/btn_0"    
            android:layout_width="fill_parent"     
            android:layout_height="wrap_content"  
            android:text="最新信息"   
            android:textSize="17.0sp"     
            android:textColor="@android :color/black"    
            android:gravity="center"   
            android:layout_weight="1"  
            android:checked="true"  
            android:button="@null"  
            android:background="@drawable/radio"  
            />    
        <RadioButton     
            android:id="@+id/btn_1"  
            android:layout_width="fill_parent"     
            android:layout_height="wrap_content"  
            android:text="在線專家"  
            android:textSize="17.0sp"  
            android:textColor="@android :color/black"    
            android:gravity="center"  
            android:layout_weight="1"  
            android:button="@null"  
            android:background="@drawable/radio"  
            />    
        <RadioButton     
            android:id="@+id/btn_2"  
            android:layout_width="fill_parent"     
            android:layout_height="wrap_content"  
            android:text="預定服務"  
            android:textSize="17.0sp"  
            android:textColor="@android :color/black"    
            android:gravity="center"  
            android:layout_weight="1"  
            android:button="@null"  
            android:background="@drawable/radio"  
            />    
    </RadioGroup>


注意將android:button="@null"所有設爲null,而且將android:background="@drawable/radio"設爲剛纔新建的圖片。這樣就完成了。 
一句代碼都不用寫! 

看看豎下來的效果: 
 

傍邊有圖標的怎麼辦? 

 
也很簡單啦,只要在每一個RadioButton上加android:drawableLeft="@drawable/tubiao_0"就能夠了。 
另外要設置圖標與文字的距離怎麼辦? 
有一個方法setCompoundDrawablePadding(pad)能夠設置圖標與文字的距離,對應的屬性爲android:drawablePadding。 

有了這招徹底能夠實現相似的n選1效果,看下面: 
 
 

應用: 
http://www.iteye.com/topic/1116261#2256664 xml

相關文章
相關標籤/搜索