自定义 checkbox 新玩法 ?

本文介绍如何通过自定义样式和状态选择器实现一个带有语音图标切换的Checkbox组件。该组件能够在点击时改变图标状态,从开启语音到关闭语音,并监听状态变化执行相应操作。
第一步:selector

编写 drawable/selector_checkbox_voice.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/ic_voice_off" android:state_checked="true"/>
    <item android:drawable="@drawable/ic_voice_on" android:state_checked="false"/>
    <item android:drawable="@drawable/ic_voice_off"/>
</selector>
第二步:style

VoiceCheckboxTheme

<!--自定义的checkbox-->
<style name="VoiceCheckboxTheme" parent="@android:style/Widget.CompoundButton.CheckBox">
    <item name="android:button">@drawable/selector_checkbox_voice</item>
</style>
第三步:布局文件里
<CheckBox
    android:id="@+id/cb_voice"
    style="@style/VoiceCheckboxTheme" //这里使用
    android:layout_width="@dimen/dp21"
    android:layout_height="@dimen/dp28"
    android:gravity="center"
    android:layout_marginLeft="@dimen/dp30"
    />
第四步:效果

看左边第二个

//点击前

//点击后

你可以监听状态:

//语音是否关闭
    mCb_Voice.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            if (isChecked){
                //执行关闭语音
                MGToast.showToast("执行关闭语音");
            }else {
                //执行开启语音
                MGToast.showToast("执行开启语音");
            }
        }
    });
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值