Можно ли изменить значок радиокнопки в группе радиокнопок android
Я хочу, чтобы позволить пользователю моего приложения android возможность установить некоторые параметры. Переключатель идеально подходит для этой ситуации. Однако мне не нравится, что переключатели отображаются.
можно ли изменить значок кнопки радио? Например, можно ли создать пользовательский макет для каждой строки и в этом макете ссылаться на мой собственный значок и изменять шрифт и т. д.
5 ответов
Да, возможно, вам нужно определить свой собственный стиль для переключателей, в 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>
"радио" здесь должно быть stateful drawable, радио.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/ это хороший гид.
вы можете поместить пользовательское изображение в radiobutton, как обычная кнопка. для этого создайте один XML-файл в папке drawable е.г
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/sub_screens_aus_hl"
android:state_pressed="true"/>
<item android:drawable="@drawable/sub_screens_aus"
android:state_checked="true"/>
<item android:drawable="@drawable/sub_screens_aus"
android:state_focused="true" />
<item android:drawable="@drawable/sub_screens_aus_dis" />
</selector>
здесь вы можете использовать 3 разных изображения для radiobutton
и используйте этот файл для RadioButton, например:
android:button="@drawable/aus"
android:layout_height="120dp"
android:layout_width="wrap_content"
более простой способ изменить только переключатель-это просто установить селектор для drawable right
<RadioButton
...
android:button="@null"
android:checked="false"
android:drawableRight="@drawable/radio_button_selector" />
и селектора:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_checkbox_checked" android:state_checked="true" />
<item android:drawable="@drawable/ic_checkbox_unchecked" android:state_checked="false" /></selector>
вот и все
да....` из Xml
android:button="@drawable/yourdrawable"
и от Java
myRadioButton.setButtonDrawable(resourceId or Drawable);
`
вот, вероятно, быстрый подход,
С двумя значками, показанными выше, у вас будет RadioGroup
что-то вроде этого
- изменить
RadioGroup
's ориентация по горизонтали - для каждого
RadioButton
свойства, попробуйте дать значокButton
подCompoundButton
, - отрегулируйте прокладку и размер,
- и установить атрибут background при проверке.