美文网首页自定义Android知识Android开发
RadioButton自定义点击时的背景颜色

RadioButton自定义点击时的背景颜色

作者: 唠嗑008 | 来源:发表于2017-03-20 22:46 被阅读277次
    一、应用场景:

    在使用 RadioButton 时,有时我们会需要自定义点击时改变背景颜色的效果。

    效果图:

    RadioButton自定义背景颜色.jpg

    二、实现步骤:

    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 的单选监听器,获取选中的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();  
        }  
    });  
    

    相关文章

      网友评论

      • 莎莎氧oO:为什么照楼主文章做完全没有效果,,疯了。。android 6.0

      本文标题:RadioButton自定义点击时的背景颜色

      本文链接:https://www.haomeiwen.com/subject/fgzinttx.html