如何为每个 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 buttoncustom-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 的单元格提供单独的颜色

如何为 ListView 控件中的第一个 WPF RadioButton 设置 XAML,以便默认检查?

如何为单独的 TextView 设置单独的进度条

如何为每页tcpdf设置背景颜色

如何为每个 select2 选项使用不同的颜色?

如何为 NavigationView 中的单个菜单项提供自定义图标颜色?