更改选中的单选按钮颜色

Change checked radio button color

我想更改选中的 RadioButton 颜色。但我不知道改变它的方法。下面是一些代码和图片表示。

<RadioButton
  android:id="@+id/type_cambodia"
  android:layout_width="match_parent"
  android:layout_height="30dp"
  android:button="@null"
  android:drawablePadding="20dp"
  android:layout_marginTop="@dimen/app_margin"
  android:drawableRight="@android:drawable/btn_radio"
  android:text="@string/type_goal_khmer_kh"/>

您可以设计自己的自定义绘图。

<style name="MyRadioButtonStyle" parent="@android:style/Widget.CompoundButton.RadioButton">
    <item name="android:button">@drawable/custom_btn_radio</item>
</style>

custom_drawable_for_radio_button.xml

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

    <item android:state_checked="true" android:state_pressed="true"
          android:drawable="@drawable/btn_radio_on_pressed" />
    <item android:state_checked="false" android:state_pressed="true"
          android:drawable="@drawable/btn_radio_off_pressed" />

    <item android:state_checked="true" android:state_focused="true"
          android:drawable="@drawable/btn_radio_on_selected" />
    <item android:state_checked="false" android:state_focused="true"
          android:drawable="@drawable/btn_radio_off_selected" />

    <item android:state_checked="false" android:drawable="@drawable/btn_radio_off" />
    <item android:state_checked="true" android:drawable="@drawable/btn_radio_on" />
</selector>

在选择器项中,您可以指定一个自定义 "ON" 具有不同颜色的可绘制对象。然后为您使用此自定义可绘制单选按钮而不是默认单选按钮。

RadioButton - how to use a custom drawable?