SwitchButton 的使用汇总 —— 定制漂亮的开关控件

本文介绍了开源库SwitchButton的使用,详细解析了XML布局中的各个属性,如开关尺寸、颜色、圆角、渐变效果等,并展示了在代码中如何设置开关状态及监听事件。

SwitchButton 是一个开源 switch开关控件;在android studio build.gradel引入插件即可



在xml中布局的每个属性的意义如下:

kswThumbWidth:设置开关按钮的宽
kswThumbHeight:设置开关按钮的高
kswThumbMargin:设置开关与背景之间的编辑
kswThumbMarginLeft 、kswThumbMarginRight、kswThumbMarginButtom、kswThumbMarginTop 略
kswThumbRadius:设置开关按钮的圆角半径
kswThumbDrawable:用一张图片作为开关按钮 (设置了按钮无切换效果)
kswThumbColor:设置开关按钮的颜色 (设置了按钮无切换效果)

kswBackRadius:设置开关背景的圆角半径
kswBackColor:设置开关 背景颜色(设置了 无开关效果)ps:没设置的话就没有为透明

kswFadeBack:是否开起切换的渐变效果
kswBackMeasureRatio:设置开关背景的长度(可滑动区间的长度),他是比率,比率越大,越长
kswTintColor:设置开关 打开后 背景及按钮的颜色 
ps:如果只设置了kswBackColor而没设置kswTintColor开关的切换只有按钮有切换效果,背景没有

kswAnimationDuration:开关动画的持续时间

kswTextOn:打开状态的文字
kswTextOff:关闭状态的文字
kswTextMarginH:打开或关闭文字 距离相应一边的距离(eg:打开状态的文字距离)



android:checked="true" 置为打开状态 //可以看出  switchBotton实现了android Checkable接口


在代码中控件设置打开或关闭状态以及回调监听如下:

setChecked()切换有动画效果
setCheckedImmediately() 作用与setChecked()一致但是无动画效果

toggle()与toggleImmediately() 是切换当前状态(比如 当前打开,调用此方法则变为关闭状态)两者存在有无动画效果区分

切换的回调监听
setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

            }
        }); 


1.4.1版本后存在切换后 无事件处理
etCheckedNoEvent(boolean)
setCheckedImmediatelyNoEvent(boolean)
toggleNoEvent()

toggleImmediatelyNoEvent()


进一步了解可以一起探讨下源码,这是文档地址:https://github.com/kyleduo/SwitchButton

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值