【问题标题】:Change checkbox/radio button accent color更改复选框/单选按钮的强调色
【发布时间】:2016-01-16 18:23:18
【问题描述】:

我有一个带有一些单选按钮和复选框的活动。 ATM 他们看起来像这样:

现在我想将这种绿色的强调色更改为其他颜色。实现这一目标的最佳方法是什么?

【问题讨论】:

标签: android checkbox android-studio radio-button


【解决方案1】:

您可以为此使用OnCheckedChangeListener 和一张自己的图片。例如:

checkbox.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        public void onCheckedChanged(CompoundButton buttonView,
                boolean isChecked) {

            if (isChecked) {

                checkbox.setButtonDrawable(R.drawable.yourImage);
            }

        }
    });

如果您想要像绿色这样的单色背景,请使用单色图像。

【讨论】:

  • 我将如何创建此图像?对每个复选框都这样做是不是有点复杂?有没有办法改变所有的复选框?
【解决方案2】:

像这样在你的drawable文件夹中创建一个checkbox_selector.xml,你需要两个图像normal_checkbox.pngselected_checkbox.png

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:drawable="@drawable/normal_checkbox" 
          android:state_checked="false"/>
    <item android:drawable="@drawable/selected_checkbox" 
          android:state_checked="true"/>
    <item android:drawable="@drawable/normal_checkbox"/>    
</selector>

现在更改您声明 CheckBox 的布局文件

<CheckBox
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:button="@drawable/checkbox_selector"
android:text="My CheckBox"
android:textColor="@color/Black" />

了解更多click

【讨论】:

    【解决方案3】:

    对于那些在 2021 年及之后寻找此功能的人,现在有一种更简单的方法可以实现此目标,只需使用一小段 css:

    input[type=checkbox], input[type=radio] {
        accent-color: #FFCD00;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-31
      • 2018-01-24
      • 2017-09-21
      • 1970-01-01
      • 1970-01-01
      • 2016-12-21
      • 2023-03-12
      • 1970-01-01
      相关资源
      最近更新 更多