我使用以下代码创建自定义单选按钮:
layout.xml
<RadioButton
android:id="@+id/radio0"
android:layout_width="24dp"
android:layout_height="24dp"
android:background="@drawable/control_radio_button"
android:button="@android:color/transparent"
android:checked="false" />
@ drawable / control_radio_button
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/control_radio_bg_false" android:state_checked="true" android:state_pressed="true" />
<item android:drawable="@drawable/control_radio_bg_true" android:state_pressed="true" />
<item android:drawable="@drawable/control_radio_bg_true" android:state_checked="true" />
<item android:drawable="@drawable/control_radio_bg_false" />
</selector>
@ drawable / control_radio_bg_true
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="999dp" />
<stroke
android:width="2dip"
android:color="#E0E0E0" />
<solid android:color="#f44336" />
</shape>
@ drawable / control_radio_bg_true
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="999dp" />
<stroke
android:width="6dp"
android:color="#bfbfbf" />
<solid android:color="#f44336" />
</shape>
我可以通过编程方式更改@drawable/control_radio_bg_false
和@drawable/control_radio_bg_true
的背景。
我想使用适配器(在recyclerview中)创建具有不同颜色的自定义单选按钮的列表。
我该怎么做?
答案 0 :(得分:0)
您可以尝试以下操作:
(radio0.background as? ShapeDrawable)?.apply {
paint.color = ContextCompat.getColor(context, R.color.new_color)
}
您需要自己处理状态,但这应该可以覆盖您。
答案 1 :(得分:0)
我对kotlin代码进行了大量研究,并发现了这一点。在此处添加此内容,以便其他人专门寻找kotlin。 在将可绘制形状添加为视图的背景后,在相应的活动中添加以下代码。
YourViewID.background.setColorFilter(Color.parseColor("#00000"),PorterDuff.Mode.SRC_OVER)