是否有可能更改android单选button组中的单选button图标
我想让我的android应用程序的用户能够设置一些参数。 单选button非常适合这种情况。 但是,我不喜欢单选button被渲染。
是否可以更改单选button图标? 例如,是否可以为每一行创build自定义布局,并在该布局中引用我自己的图标并更改字体等。
是的,您可能需要在res / values / styles.xml中定义单选button的样式:
<?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'在这里应该是一个有状态的drawable,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>
然后,将自定义主题应用到整个应用程序或您所select的活动。
有关主题和样式的更多信息,请参阅http://brainflush.wordpress.com/2009/03/15/understanding-android-themes-and-styles/ ,这是很好的指导。
你可以把自定义的图像放在单选button像普通button。 为此在可绘制的文件夹中创build一个XML文件,例如
<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个不同的图像作为单选button
并使用这个文件到RadioButton像:
android:button="@drawable/aus" android:layout_height="120dp" android:layout_width="wrap_content"
只更改单选button的简单方法是简单地将select器设置为可绘制的右侧
<RadioButton ... android:button="@null" android:checked="false" android:drawableRight="@drawable/radio_button_selector" />
select器是:
<?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
的方向改为水平 - 对于每个
RadioButton
的属性,尝试给CompoundButton
下的Button
图标, - 调整填充和大小,
- 并在选中时设置背景属性。