自定義 checkbox 新玩法 ?

weixin_34208283發表於2016-07-30

自定義 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"
    />

第四步:效果

看左邊第二個

//點選前


1489435-cad70bf9cca84f21.png

//點選後


1489435-ffb590176bb0534f.png

你可以監聽狀態:

//語音是否關閉
    mCb_Voice.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            if (isChecked){
                //執行關閉語音
                MGToast.showToast("執行關閉語音");
            }else {
                //執行開啟語音
                MGToast.showToast("執行開啟語音");
            }
        }
    });

相關文章