是否有可能更改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图标,
  • 调整填充和大小,
  • 并在选中时设置背景属性。