1. 程式人生 > >radiobutton設定自定義樣式

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物件。

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

button.setButtonDrawable(new ColorDrawable(Color.TRANSPARENT));