Изменить цвет RadioButton при нажатии

У меня есть RadioGroup имея 3 Radio Buttons, По умолчанию, когда я нажимаю переключатель, он становится синим. Мне нужно изменить цвет, скажем, когда я нажимаю на первый, он должен превратиться в желтый, 2-й синий и 3-й в зеленый.

Я видел некоторые учебные пособия для настройки с помощью стилей переключателей, например, Можно ли изменить значок переключателя в группе переключателей Android, но он скрывает все кнопки.

Вот мой XML .

<RadioGroup
    android:id="@+id/radioGroup1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/studentImage"
    android:layout_alignParentRight="true"
    android:layout_alignRight="@+id/studentImage"
    android:layout_alignTop="@+id/studentImage"
    android:orientation="horizontal" >

    <RadioButton
        android:id="@+id/rb1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:visibility="visible" />

    <RadioButton
        android:id="@+id/rb2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:visibility="visible" />

    <RadioButton
        android:id="@+id/rb3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:visibility="visible" />
</RadioGroup>

1 ответ

Вы можете использовать описываемый список состояний, как я написал ниже:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:drawable="@drawable/color_pressed" /> <!-- pressed -->
<item android:drawable="@drawable/default_button" /> <!-- default -->
</selector> 

color_pressed и deafult_button будут вашими объектами рисования для каждого состояния кнопки, вы можете иметь несколько селекторов для каждого переключателя

Другие вопросы по тегам