单选按钮使单选按钮外圈的颜色与选择单选按钮时的颜色不同

时间:2018-07-26 14:44:21

标签: java android xml

我需要自定义android中的单选按钮的帮助。基本上我想做的是将单选按钮设置为白色,并且当用户单击或选择单选按钮时,我希望内圈为蓝色,外圈为白色。
我知道我可以使用 buttonTint ,但是当用户将单选按钮选择为相同颜色时,这将同时设置外圆和内圆。
我想做什么甚至可能?

谢谢

enter image description here

2 个答案:

答案 0 :(得分:0)

使用buttonTint的{​​{1}}属性:

RadioButton

答案 1 :(得分:0)

您可以使用radioButton的button属性并设置所需的可绘制对象,例如仅对选中的内部圆形着色,而对未选中的白色圆圈进行如下着色

android:button="@drawable/rb_bg"

rb_bg.xml

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

button_selected.xml

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

<item>
    <shape android:shape="oval">
        <solid android:color="@color/divider_color" />
    </shape>
</item>

<item android:bottom="1dp">
    <shape android:shape="oval">
        <solid android:color="@android:color/white" />
    </shape>
</item>

<item
    android:bottom="4dp"
    android:left="4dp"
    android:right="4dp"
    android:top="4dp">
    <shape android:shape="oval">
        <size
            android:width="16dp"
            android:height="16dp" />
        <solid android:color="@color/blue" />
    </shape>
</item>

button_unselected.xml

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
    <shape android:shape="oval">
        <solid android:color="@color/divider_color"/>
    </shape>
</item>
<item
    android:bottom="1dp">
    <shape android:shape="oval">
        <size android:height="24dp" android:width="24dp"/>
        <solid android:color="@android:color/white"/>
    </shape>
</item>