天天看點

radiobutton設定自定義樣式

1、建立selector

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item

            android:drawable="@mipmap/ok_icon" />
    <item
            android:state_enabled="true"
            android:state_checked="true"
            android:drawable="@color/black" />
</selector>
           
<RadioButton
            android:id="@+id/btnIsChoosed"
            android:layout_width="@dimen/dp40"
            android:layout_height="@dimen/dp40"
            android:background="@drawable/ok_selecrot"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true"
            android:layout_marginRight="@dimen/dp20"
            android:button="@null"
            />
           

解釋:

android:button=”@null” 去除RadioButton前面的圓點

android:background=”@drawable/radio” 使用定義的樣式

動态設定radiobutton樣式時,仍然顯示原來樣式的解決方案:

原文連結

RadioButton和CheckBox都是Android app中常用的Widget,它們派生于CompoundButton,允許使用者自行設定背景和按鈕的樣式,不過,有時我們僅希望簡單的設定一個有狀态的背景,并隐藏其預設樣式。可是,當我們調用setButtonDrawable(null)或setButtonDrawable(0)時,卻發現完全沒有效果。原來,CompoundButton的setButtonDrawable的代碼實作中屏蔽了null或resid為0的Drawable,迫使我們必須傳入有效的Drawable對象。

這時候,透明顔色就可以派上用場了: