利用代码动态改变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的大小可以更改,你是怎么实现的
wpf中datagrid选择改变事件中怎样绑定RadioButton的数据