如何为每个 RadioButton 设置单独的颜色?
Posted
技术标签:
【中文标题】如何为每个 RadioButton 设置单独的颜色?【英文标题】:How to set individual color for each RadioButton? 【发布时间】:2021-12-17 14:02:49 【问题描述】:我正在用一堆按钮制作 RadioGroup。每个按钮代表颜色。检查时我需要在按钮上制作一个框架。我也想让每个按钮都有自己的颜色。现在我正在使用这段代码:
对于每个 RadioButton:
android:background="@drawable/color_button" android:button="@null"
这个可绘制对象:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:drawable="@drawable/color_button_selected"
android:state_checked="true"/>
<item
android:drawable="@drawable/color_button_regular" />
</selector>
对于常规按钮:
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<corners
android:radius="8dp" />
<stroke
android:
android:color="#E8E8E8" />
</shape>
对于按下(选中)按钮:
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<corners
android:radius="8dp" />
<stroke
android:
android:color="#000000" />
</shape>
所以我的每个按钮当然都是相同的,因为它使用相同的布局。那么你能帮我让每个按钮都遵循这个检查/按下的参数,但用单独的颜色代表每个按钮吗?
example of buttons' look right now
【问题讨论】:
【参考方案1】:给你的radio button
custom-style:
<style name="MyRadioButtonStyle" parent="@android:style/Widget.CompoundButton.RadioButton">
<item name="android:button">@drawable/custom_btn_radio</item>
</style>
custom_btn_radio.xml
<item android:state_checked="true" android:state_pressed="true"
android:drawable="@drawable/btn_radio_on_pressed" />
<item android:state_checked="false" android:state_pressed="true"
android:drawable="@drawable/btn_radio_off_pressed" />
<item android:state_checked="true" android:state_focused="true"
android:drawable="@drawable/btn_radio_on_selected" />
<item android:state_checked="false" android:state_focused="true"
android:drawable="@drawable/btn_radio_off_selected" />
<item android:state_checked="false" android:drawable="@drawable/btn_radio_off" />
<item android:state_checked="true" android:drawable="@drawable/btn_radio_on" />
用你自己的替换drawables。
【讨论】:
你能解释一下我如何设置颜色吗?我需要根据需要制作尽可能多的颜色吗?以上是关于如何为每个 RadioButton 设置单独的颜色?的主要内容,如果未能解决你的问题,请参考以下文章
如何为具有 uilocalnotification 的单元格提供单独的颜色