利用代码动态改变radiobutton 的 selector

Posted zjzjt

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用代码动态改变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);

如此即可

以上是关于利用代码动态改变radiobutton 的 selector的主要内容,如果未能解决你的问题,请参考以下文章

android:radiobutton的大小可以更改,你是怎么实现的

iOS逆向之代码注入!(下)

C#如何动态加载RadioButton控件

wpf中datagrid选择改变事件中怎样绑定RadioButton的数据

android 代码中设置radiobutton选中与为选中颜色

求助RadioButton的动态添加