选中的单选按钮始终为灰色 Android XML

Checked Radio Button always grey Android XML

提问人:Zen Ryuu 提问时间:11/9/2023 更新时间:11/9/2023 访问量:15

问:

我已经设置了单选按钮色调颜色并启用了它。但它仍然是灰色的。这是xml中的代码:

<RadioGroup
        android:id="@+id/rg_switch_mode"
        android:layout_width="match_parent"
        android:layout_height="55dp"
        android:gravity="center"
        android:orientation="horizontal"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/ll_estimated_data">

        <RadioButton
            android:id="@+id/rad_btn_detectObj"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Detect Object"
            android:buttonTint="@color/its_blue"
            android:textColor="@android:color/black"
            android:enabled="true"
            android:checked="true"
            android:textSize="14sp"
            android:layout_marginEnd="10dp" />

        <Space
            android:layout_width="10dp"
            android:layout_height="match_parent"/>

        <RadioButton
            android:id="@+id/rad_btn_imgCapt"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Image Captioning"
            android:buttonTint="@color/its_blue"
            android:textColor="@android:color/black"
            android:enabled="true"
            android:textSize="14sp"/>
    </RadioGroup>

我在应用程序主题中设置了主题.xml。<item name="colorControlActivated">@color/its_blue</item>

但这仍然是预览radiobutton grey

android xml kotlin android-studio android-layout

评论


答:

-1赞 m0haMed 12/5/2023 #1

如需在 Android Studio 中更改单选按钮的颜色,您应使用自定义 XML 可绘制对象作为按钮背景 创建新的 XML 可绘制资源文件:

  1. 右键单击 Android Studio 项目中的 res/drawable 文件夹,然后选择“新建 -> 可绘制资源文件”。为其命名,例如 custom_radio_button_background.xml。
  2. 编辑 XML 可绘制文件:

打开新创建的 XML 文件并添加以下代码以创建具有所需颜色的自定义背景:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- Checked state -->
    <item android:state_checked="true">
        <layer-list>
            <item>
                <shape android:shape="oval">
                    <solid android:color="@color/your_checked_color" />
                    <!-- Change the color to your desired checked color -->
                </shape>
            </item>
            <item android:drawable="@android:drawable/btn_radio" />
        </layer-list>
    </item>

    <!-- Unchecked state -->
    <item android:state_checked="false">
        <layer-list>
            <item>
                <shape android:shape="oval">
                    <solid android:color="@color/your_unchecked_color" />
                    <!-- Change the color to your desired unchecked color -->
                </shape>
            </item>
            <item android:drawable="@android:drawable/btn_radio" />
        </layer-list>
    </item>
</selector>
  1. 将自定义可绘制对象应用于单选按钮并使用 button 属性

android:button=“@drawable/custom_radio_button_background”

<RadioGroup
        android:id="@+id/rg_switch_mode"
        android:layout_width="match_parent"
        android:layout_height="55dp"
        android:gravity="center"
        android:orientation="horizontal"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/ll_estimated_data">

        <RadioButton
            android:id="@+id/rad_btn_detectObj"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Detect Object"
            android:button="@drawable/custom_radio_button_background"
            android:textColor="@android:color/black"
            android:enabled="true"
            android:checked="true"
            android:textSize="14sp"
            android:layout_marginEnd="10dp" />

        <Space
            android:layout_width="10dp"
            android:layout_height="match_parent"/>

        <RadioButton
            android:id="@+id/rad_btn_imgCapt"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Image Captioning"
            android:button="@drawable/custom_radio_button_background"
            android:textColor="@android:color/black"
            android:enabled="true"
            android:textSize="14sp"/>
    </RadioGroup>

评论

1赞 NotTheDr01ds 12/5/2023
欢迎(返回)Stack Overflow!请注意,不允许使用 AI 工具(例如 ChatGPT)来生成或改写您在 Stack Overflow 上发布的内容,即使您事先审查了这些内容。另请参阅有关此主题的相关帮助。我们希望您能坚持下去,并继续成为社区的重要成员,在未来贡献您自己的优质答案和问题!