You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改RadioButton获取焦点时的高亮圆环颜色

自定义RadioButton焦点状态的灰色圆环样式

我要修改的是RadioButton获取焦点时出现的透明灰色圆环。
RadioButton获取焦点时的透明灰色圆环

我已经尝试了RadioButton的多数颜色相关样式属性,当前使用的样式代码如下:

<style name="Widget.App.RadioButton" parent="Widget.AppCompat.CompoundButton.RadioButton">
    <item name="android:shadowRadius">50</item>
    <item name="android:buttonTint">@color/Red</item>
    <item name="colorPrimarySurface">@color/Green</item>
    <item name="colorOnSurface">@color/md_red_800</item>
    <item name="colorSecondary">@color/md_red_400</item>
    <item name="android:colorFocusedHighlight">@color/md_purple_500</item>
</style>

解决方案

要修改这个焦点圆环,可通过以下两种方式实现:

方法一:直接通过样式属性修改颜色

在你的RadioButton样式中添加控制焦点阴影的属性:

<!-- 针对Android原生属性 -->
<item name="android:outlineSpotShadowColor">@color/你的焦点颜色</item>
<item name="android:outlineAmbientShadowColor">@color/你的焦点颜色</item>
<!-- 适配AppCompat主题的属性 -->
<item name="outlineSpotShadowColor">@color/你的焦点颜色</item>
<item name="outlineAmbientShadowColor">@color/你的焦点颜色</item>

方法二:自定义焦点状态的背景Drawable

  1. 在res/drawable目录下创建radio_button_focus_bg.xml文件:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_focused="true">
        <shape android:shape="oval">
            <stroke android:width="2dp" android:color="@color/你的焦点颜色"/>
            <solid android:color="@android:color/transparent"/>
        </shape>
    </item>
    <item>
        <shape android:shape="oval">
            <solid android:color="@android:color/transparent"/>
        </shape>
    </item>
</selector>
  1. 在RadioButton样式中设置该背景:
<item name="android:background">@drawable/radio_button_focus_bg</item>

注意:如果RadioButton已通过android:button自定义了单选框图标,可改用android:foreground属性设置上述drawable,避免背景覆盖图标。

内容的提问来源于stack exchange,提问作者sabertooth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 09:27:25