利用代码动态改变radiobutton 的 selector

因为公司业务需求,需要在特定时期改变页面样式,其中有一个radiobutton要在特定时期修改为特定的样式,图片和字体颜色都需要修改,这里需要用到StateListDrawable修改radiobutton的背景图片,还需要ColorStateList修改字体颜色

 StateListDrawable arriveddrawable = new StateListDrawable();
        Drawable arriveselected = getResources().getDrawable(R.drawable.new_year_site_on);
        Drawable arriveunSelected = getResources().getDrawable(R.drawable.new_year_site_off);
        arriveddrawable.addState(new int[]{android.R.attr.state_checked},
                arriveselected);
        arriveddrawable.addState(new int[]{-android.R.attr.state_checked},
                arriveunSelected);
        rbtnArrival.setCompoundDrawablesWithIntrinsicBounds(null, arriveddrawable, null, null);

StateListDrawable 加载不同状态下对应的图片资源

注意 上面的“-”负号表示对应的属性值为false

如此,就可以实现

对字体颜色的修改

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:color="@color/logoutcolor" android:state_checked="true" />
    <item android:color="@color/AppTextColor" />

</selector>
   ColorStateList colorStateList = getResources().getColorStateList(R.color.newyeartab_menu_item_textcolor);
        rbtnArrival.setTextColor(colorStateList);
        rbtnLine.setTextColor(colorStateList);
        rbtnFavorite.setTextColor(colorStateList);
        rbtnIwillgo.setTextColor(colorStateList);

如此即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值