Можно ли изменить значок переключателя в группа радиокнопок Android

Я хочу предоставить пользователю моего приложения для Android возможность устанавливать некоторые параметры. Радиокнопка идеально подходит для этой ситуации. Однако мне не нравится рендеринг переключателей.

Можно ли изменить значок переключателя? Например, можно ли создать собственный макет для каждой строки и в этом макете ссылаться на мой собственный значок и изменить шрифт и др.

95
задан yamspog 26 August 2010 в 15:11
поделиться

1 ответ

Да, возможно, вам нужно определить свой собственный стиль для переключателей, в 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/.

166
ответ дан 24 November 2019 в 05:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: