首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Android中以编程方式将tint应用于复选框首选项?

如何在Android中以编程方式将tint应用于复选框首选项?
EN

Stack Overflow用户
提问于 2019-11-19 20:28:26
回答 2查看 134关注 0票数 0

如何在Android中以编程方式将色调应用于CheckBox首选项?

由于主题的原因,CheckBox首选项已经显示为灰色,但我需要通过编程将色调应用/更改为其他颜色。如何做到这一点?

EN

回答 2

Stack Overflow用户

发布于 2019-11-19 20:31:59

Tinting Checkbox on pre v21

通过使用主题属性并设置colorControlNormal和colorControlActivated,可以对复选框进行着色:

styles.xml

代码语言:javascript
运行
复制
<style name="MyCheckBox" parent="Theme.AppCompat.Light">  
<item name="colorControlNormal">@color/indigo</item>
<item name="colorControlActivated">@color/pink</item>
</style> 

布局xml:

代码语言:javascript
运行
复制
<CheckBox  
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:checked="true"
        android:text="Check Box"
        android:theme="@style/MyCheckBox"/>
票数 0
EN

Stack Overflow用户

发布于 2019-11-19 20:42:41

我推荐来自How to change checkbox checked color programmatically的@ywwynm答案

代码语言:javascript
运行
复制
public static void setCheckBoxColor(AppCompatCheckBox checkBox, int uncheckedColor, int checkedColor) {
    ColorStateList colorStateList = new ColorStateList(
            new int[][] {
                    new int[] { -android.R.attr.state_checked }, // unchecked
                    new int[] {  android.R.attr.state_checked }  // checked
            },
            new int[] {
                    uncheckedColor,
                    checkedColor
            }
    );
    checkBox.setSupportButtonTintList(colorStateList);
}

使用ColorStateList设置setSupportButtonTintList,然后以编程方式设置选中和取消选中状态肯定会得到您的答案

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58934145

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档