Я хочу предоставить пользователю моего приложения для Android возможность устанавливать некоторые параметры. Радиокнопка идеально подходит для этой ситуации. Однако мне не нравится рендеринг переключателей.
Можно ли изменить значок переключателя? Например, можно ли создать собственный макет для каждой строки и в этом макете ссылаться на мой собственный значок и изменить шрифт и др.
Да, возможно, вам нужно определить свой собственный стиль для переключателей, в res/values/styles.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="CustomTheme" parent="android:Theme">
<item name="android:radioButtonStyle">@style/RadioButton</item>
</style>
<style name="RadioButton" parent="@android:style/Widget.CompoundButton.RadioButton">
<item name="android:button">@drawable/radio</item>
</style>
</resources>
«радио» здесь должно быть отрисовываемым с отслеживанием состояния, radio.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:state_window_focused="false"
android:drawable="@drawable/radio_hover" />
<item android:state_checked="false" android:state_window_focused="false"
android:drawable="@drawable/radio_normal" />
<item android:state_checked="true" android:state_pressed="true"
android:drawable="@drawable/radio_active" />
<item android:state_checked="false" android:state_pressed="true"
android:drawable="@drawable/radio_active" />
<item android:state_checked="true" android:state_focused="true"
android:drawable="@drawable/radio_hover" />
<item android:state_checked="false" android:state_focused="true"
android:drawable="@drawable/radio_normal_off" />
<item android:state_checked="false" android:drawable="@drawable/radio_normal" />
<item android:state_checked="true" android:drawable="@drawable/radio_hover" />
</selector>
Затем просто примените Пользовательская тема либо для всего приложения, либо для действий по вашему выбору.
Для получения дополнительной информации о темах и стилях см. http://brainflush.wordpress.com/2009/03/15/understanding-android-themes-and-styles/.