android动态添加checkbox及样式(替换默认图片)

日常开发中,常常会碰到自定义控件动态添加checkbox的情况,添加比较简单,就不多说了,这里我要说的是如何替换默认选中图片效果以及其样式。
代码如下:
1、在drawable文件新建cb_common.xml文件(静态情况下直接使用button属性即可,如android:button=”@drawable/cb_common”)

   <selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/checked" android:state_enabled="false" android:state_checked="true"/>
    <item android:drawable="@drawable/transparent" android:state_enabled="false" android:state_checked="false"/>
    <item android:drawable="@drawable/cb_checked" android:state_checked="true"/>
    <item android:drawable="@drawable/cb_unchecked" android:state_checked="false"/>

</selector> 

2、控件中创建checkbox及引用

        CheckBox checkBox = new CheckBox(getContext());
        checkBox.setText(value);
        checkBox.setTextColor(Color.BLACK);
        checkBox.setTextSize(20);
        checkBox.setPadding(20, 7, 0, 7);
        //设置一张透明图片
        checkBox.setButtonDrawable(R.drawable.transparent);

        Drawable cbCommon;
        Resources res = getResources();
        //把自定义的样式图片写入cb_common文件中
        cbCommon = res.getDrawable(R.drawable.cb_common);
        //这里要注意,该方法是绘制文字前面的图片,图片宽度等同于文字宽度,即图片宽度+文字宽度=总内容宽度,
        //所以设置样式的时候注意缩进,且该方法不可缺少
        cbCommon.setBounds(0, 0, cbCommon.getMinimumWidth(), cbCommon.getMinimumHeight());
        checkBox.setCompoundDrawables(cbCommon, null, null, null); //设置左图标
        checkBox.setCompoundDrawablePadding(5);

        checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

            }
        });
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值