API级别16中的复选框buttontint颜色

时间:2017-01-10 09:34:25

标签: android

我想更改复选框按钮颜色,因为软糖以及版本以下默认颜色为黑色,我想要白色< / strong>颜色

我尝试过这样做:android:buttonTint 但它表示支持API 21及更高版本

然后我尝试了这个:

<style name="WhiteCheck" parent="Base.Theme.AppCompat.Light">
 <item name="colorAccent">@color/white</item>
</style>

<CheckBox
        android:id="@+id/abc"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:button="@null"
        android:textColor="@color/off_white"
        android:paddingLeft="10dp"
        android:drawablePadding="10dp"
        android:drawableLeft="?android:attr/listChoiceIndicatorMultiple"
        android:paddingTop="5dp"
        android:buttonTint="@color/white"
        android:textSize="15sp"
        android:theme="@style/WhiteCheck"
        />

但AppCompat库支持colorAccent。 API:colorAccent将受API 21支持。

如果是,那是不可能的,那么如何?

enter image description here

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:0)

尝试使用android:colorAccent属性

<style name="WhiteCheck" parent="Base.Theme.AppCompat.Light">
    <item name="android:colorAccent">@color/white</item>
</style>

另见material design theme reference

答案 1 :(得分:0)

API&lt; 21

如果您有兴趣更改复选框(按钮)的背景颜色,请使用

mcheckbox.setButtonDrawable(R.drawable.someotherbackground);

其中,otherotherbackground是可绘制文件夹中的图像,您想要更改复选框的背景

尝试如下

 mcheckbox.setOnCheckedChangeListener(new OnCheckedChangeListener() {

    public void onCheckedChanged(CompoundButton buttonView,
            boolean isChecked) {

        if (isChecked) {
           // mcheckbox.setBackgroundColor(Color.BLUE);  //Use if you want to change Color
            System.out.println("checked" + isChecked);
            mcheckbox.setButtonDrawable(R.drawable.imageWhenActive);
                System.out.println("app constant is set as "+isChecked);
        }
        else
        {
        // mcheckbox.setBackgroundColor(Color.RED);  //Use if you want to change Color
            mcheckbox.setButtonDrawable(R.drawable.imageWheninactive);
            System.out.println("app constant is set as "+isChecked);
        }

    }
});