radiobutton設定自定義樣式
阿新 • • 發佈:2019-02-18
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));