android自定义控件之radioButton


<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!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值