Привет! Продолжая тему кастомизации элементов интерфейса Android хочу описать, как кастомизировать RadioButton.
Что бы создать кастомный стиль для RadioButton нужно создать drawable-ресурс, содержащий 4 иконки:
Pressed | Checked |
True | True |
True | False |
False | True |
False | False |
Поместите ваши изображения в res\drawable\ Далее нужно создать описание для этих ресурсов. Селектор.
Для этого нужно создать файл, например res\drawable\button_radio.xml
в втором и будут описано, когда какую картинку размещать.
Пример:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:state_pressed="false"
android:drawable="@drawable/radio_on"/>
<item android:state_checked="false" android:state_pressed="false"
android:drawable="@drawable/radio_off"/>
<item android:state_checked="true" android:state_pressed="true"
android:drawable="@drawable/radio_on_pressed"/>
<item android:state_checked="false" android:state_pressed="true"
android:drawable="@drawable/radio_off_pressed"/>
</selector>
Подключить его из разметки можно при помощи следующей строки:
android:button="@drawable/button_radio"
А из JAVA кода можно так:
RadioButton newRadioButton = new RadioButton(this);
newRadioButton.setButtonDrawable(R.drawable.radio_button);
В коде выше описаны не все атрибуты.