Этого можно добиться с помощью RadioGroup.
Вам необходимо настроить RadioButtons внутри RadioGroup следующим образом:
<RadioGroup
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/background_toggler"
android:orientation="horizontal"
android:padding="4dp">
<RadioButton
android:id="@+id/btn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/button1_background"
android:button="@null"
android:checked="true" />
<RadioButton
android:id="@+id/btn2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/button2_background"
android:button="@null"
android:checked="false" />
<RadioButton
android:id="@+id/btn3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/button3_background"
android:button="@null"
android:checked="false" />
</RadioGroup>
вытяжка / button1_background.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:drawable="@drawable/btn1checked"
android:state_checked="true" />
<item
android:drawable="@drawable/btn1unchecked"
android:state_checked="false" />
</selector>
вытяжка / button2_background.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:drawable="@drawable/btn2checked"
android:state_checked="true" />
<item
android:drawable="@drawable/btn2unchecked"
android:state_checked="false" />
</selector>
вытяжка / button3_background.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:drawable="@drawable/btn3checked"
android:state_checked="true" />
<item
android:drawable="@drawable/btn3unchecked"
android:state_checked="false" />
</selector>
Используйте соответствующие ресурсы для рисования для всех 3 кнопок.
Теперь вы можете обработать событие при смене чека RadioGroup.