如何更改 Android 上的 CheckBox 焦点颜色?

How can I change the CheckBox focus color on Android?

我想更改选中复选框时可见的复选框“轮廓”颜色,以便在通过键盘或方向键使用应用程序时提高当前选中项的可见性。我该怎么做?

我的意思的形象: Focused CheckBox on Android

编辑: 在为我的意思找到正确的措辞(“波纹颜色”)后,我设法将其更改为:

<item name="colorControlHighlight">#00f</item>

但这只适用于未选中的复选框。有人知道如何将它应用于所有(也选中)复选框吗? Image of colorControlHighlight effect on checked and unchecked checkboxes

您可以查看此博客:AppCompat themes

colorControlHighlight is for ripple color

因此,请尝试创建一个 ThemeOverlay.AppCompat 主题,您可以在其中设置所需的颜色值,这将允许您更改该视图及其子视图的波纹颜色。

要在主题中定位涟漪,请使用此属性:

android:colorControlHighlight

你可以使用主题属性:

app:theme="@style/MyCheckboxStyle"

然后将其添加到您的 style.xml 文件中:

<style name="MyCheckboxStyle" parent="AppTheme">
    <item name="colorAccent">@color/colorAccent</item>  // color when checkbox is checked 
    <item name="android:textColorSecondary">@color/colorSecondary</item>  // when it is unchecked
</style>

感谢@special N9NE

这可行:定义一个自己的波纹ripple_bg.xml

<ripple xmlns:android="http://schemas.android.com/apk/res/android"
        android:color="@color/accent_26" />

并将其设置为背景(全局):

<resources>
    <style name="AppTheme" parent="Theme.AppCompat.DayNight">
        <!-- ... -->

        <!-- custom checkbox style to improve visibility on special (TV) devices -->
        <item name="android:checkboxStyle">@style/MyCheckBoxStyle</item>
    </style>

    <style name="MyCheckBoxStyle" parent="Widget.AppCompat.CompoundButton.CheckBox">
        <item name="android:background">@drawable/ripple_bg</item>
    </style>
</resources>