<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">想要实现一个随着选中事件改变radiobutton 中字体颜色和背景颜色的功能。</span>
在src下新建文件夹color,新建radio_textcolor.xml文件。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:color="@color/selected"/>
<!-- not selected -->
<item android:color="@color/unselected"/>
</selector>
其中selected 和unselected在value>colors.xml中定义:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="selected">#ffffff</color>
<color name="unselected">#000000</color>
<color name="background">#EAEAEA</color>
</resources>
接下来需要自定义背景图片,和字体颜色差不多写到一个xml中。这里在drawable>文件夹下新建radio_background.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_checked="false"
android:drawable="@drawable/unselected" />
<item
android:state_checked="true"
android:drawable="@drawable/selected" />
</selector>
其中selected.png 和unselected.png自己选择的图片。
然后在values>styles.xml中创建我们的style;
<style name="myradiostyle">
<item name="android:background">@drawable/radio_background</item>
<item name="android:textColor">@color/radio_textcolor</item>
</style>
到此基本完成了,在布局文件中直接引用了。
<RadioGroup
android:id="@+id/radiogroup_personal_condition"
android:layout_width="wrap_content"
android:layout_height="40dip"
android:layout_marginLeft="20dip"
android:layout_marginRight="20dip"
android:layout_marginTop="30dip"
android:orientation="horizontal" >
<RadioButton
android:id="@+id/radiobutton_1"
style="@style/myradiostyle"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:button="@null"
android:checked="true"
android:gravity="center"
android:text="排名"
android:textStyle="bold" />
<RadioButton
android:id="@+id/radiobutton_2"
style="@style/myradiostyle"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:button="@null"
android:gravity="center"
android:text="历史"
android:textStyle="bold" />
<RadioButton
android:id="@+id/radiobutton_3"
style="@style/myradiostyle"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:button="@null"
android:gravity="center"
android:text="实时"
android:textStyle="bold" />
</RadioGroup>
运行看看效果!ok!