RadioButton自定義點擊時的背景顏色

一、應用場景:

在使用 RadioButton 時,有時我們會需要自定義點擊時改變背景顏色的效果。

效果圖:

RadioButton自定義背景顏色.jpg

二、實現(xiàn)步驟:

1、新建一組 RadioButton :

<RadioGroup  
    android:layout_width="match_parent"  
    android:layout_height="wrap_content"  
    android:gravity="center"  
    android:orientation="horizontal">  
  
    <RadioButton  
        android:id="@+id/btn1"  
        android:layout_width="0dp"  
        android:layout_height="35dp"  
        android:layout_weight="1"  
        android:background="@drawable/radiobutton_background"  
        android:button="@null"  
        android:gravity="center"  
        android:text="P0501"  
        android:textColor="@color/radiobutton_textcolor"  
        android:textSize="14sp" />  
  
    <RadioButton  
        android:id="@+id/btn2"  
        android:layout_width="0dp"  
        android:layout_height="35dp"  
        android:layout_marginStart="10dp"  
        android:layout_weight="1"  
        android:background="@drawable/radiobutton_background"  
        android:button="@null"  
        android:gravity="center"  
        android:text="P0502"  
        android:textColor="@color/radiobutton_textcolor"  
        android:textSize="14sp" />  
  
    <RadioButton  
        android:id="@+id/btn3"  
        android:layout_width="0dp"  
        android:layout_height="35dp"  
        android:layout_marginStart="10dp"  
        android:layout_weight="1"  
        android:background="@drawable/radiobutton_background"  
        android:button="@null"  
        android:gravity="center"  
        android:text="P0503"  
        android:textColor="@color/radiobutton_textcolor"  
        android:textSize="14sp" />  
  
</RadioGroup>  

注意:這里有2個關鍵屬性,說明一下
1)、android:button="@null" 這樣設置可以不顯示我們通常所見的 RadioButton 中的圓形選中按鈕.
2)、android:background="@drawable/radiobutton_background" 這里設置了背景選擇器。

2、radiobutton_background.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">  
    <item android:drawable="@drawable/radiobutton_background_unchecked"  
        android:state_checked="false" />  
    <item android:drawable="@drawable/radiobutton_background_checked"  
        android:state_checked="true" />  
</selector>  

3、radiobutton_background_checked.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android"  
    android:shape="rectangle">  
    <!-- 填充 -->  
    <solid android:color="@color/color1" />  
    <!-- 圓角 -->  
    <corners android:radius="5dp" />  
</shape>  

4、radiobutton_background_unchecked.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android"  
    android:shape="rectangle">  
    <!-- 填充 -->  
    <solid android:color="@color/color2" />  
    <!-- 圓角 -->  
    <corners android:radius="5dp" />  
</shape>  

5、RadioGroup 的單選監(jiān)聽器,獲取選中的RadioButton

RadioGroup radioGroup = (RadioGroup) findViewById(R.id.radioGroup);  
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {  
    @Override  
    public void onCheckedChanged(RadioGroup group, int checkedId) {  
        RadioButton radioButton = (RadioButton) group.findViewById(checkedId);  
        String result = radioButton.getText().toString();  
    }  
});  
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容