以编程方式更改 Android CheckBox 框的颜色(支持库)?

Change Android CheckBox box's color programmatically (support library)?

我正在尝试以编程方式将复选框的颜色更改为与主题默认颜色不同的颜色。问题是我在做这样的事情:

checkbox.setSupportButtonTintList(ColorStateList);

它有效,但根据其 class 文档,此方法似乎仅限于由来自同一包 (com.android.support) 的 class 人员使用。这是我从 Android Studio 收到的警告:

AppCompatCheckBox.setSupportButtonTintList can only be called from within the same library group (groupId=com.android.support)

是否有 standard/correct 方法可以对所有 API 级别执行此操作?

最后,从 Google 中的一个人那里找到了答案:https://code.google.com/p/android/issues/detail?id=202235。我没有使用是对的:

checkbox.setSupportButtonTintList(ColorStateList);

好像是私人的API。相反,您必须使用:

CompoundButtonCompat.setButtonTintList(checkbox, colorStateList);
chxAll.setButtonTintList(ColorStateList.valueOf(Color.parseColor("#CC0000")));

chxAll 是 android.widget.CheckBox

的对象

替换所需颜色的六色代码

根据rylexr的回答,您可以通过以下方式指定颜色:

CompoundButtonCompat.setButtonTintList(checkboxView, ColorStateList
                        .valueOf(getResources().getColor(R.color.red)));