Android自带的Switch控件其实挺好看的,但因各版本系统显示效果不太相同,而且就国内UI视觉审美环境来说,该控件很难受宠,往往需要自行定义Switch View以满足项目的需求。由于该控件实现比较简单,本文只作开源库的分享和介绍,希望能给大家带来帮助。
CySwitch开源库地址:https://github.com/ausboyue/CySwitch
效果演示

在项目中使用
- Layout XMl 布局中代码示例:
<cn.icheny.view.CySwitch
android:id="@+id/cy_switch"
android:layout_width="120dp"
android:layout_height="50dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="25dp"
app:borderColorChecked="@android:color/holo_green_dark"
app:borderColorUnchecked="@android:color/holo_blue_light"
app:borderWidth="0dp"
app:isChecked="true"
app:sliderHeight="40dp"
app:sliderRadius="0dp"
app:sliderWidth="40dp"
app:viewRadius="0dp" />
- java代码示例:
CySwitch cy_switch = findViewById(R.id.cy_switch);
cy_switch.setViewRadius(radius);
cy_switch.setSliderRadius(radius);
cy_switch.setBorderWidth(width);
cy_switch.checkable(true);
cy_switch.setOnCheckedChangeListener(new CySwitch.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CySwitch switchView, boolean isChecked) {
Toast.makeText(MainActivity.this, "Switch " + isChecked, Toast.LENGTH_SHORT).show();
}
});
属性介绍
| 属性 | 描述 |
|---|---|
| isChecked | 是否为Checked状态 |
| switchable | 是否可以切换 |
| duration | 动画时间间隔 |
| viewRadius | 控件圆角 |
| borderWidth | 边框宽度 |
| borderColorChecked | 边框颜色 Checked |
| borderColorUnchecked | 边框颜色 Unchecked |
| bgColorChecked | 背景颜色 Checked |
| bgColorUnchecked | 背景颜色 Unchecked |
| sliderColorChecked | 滑块颜色 Checked |
| sliderColorUnchecked | 滑块颜色 Unchecked |
| sliderRadius | 滑块圆角 |
| sliderWidth | 滑块宽 |
| sliderHeight | 滑块高 |
后期会添加切换时的颜色过渡,shadow阴影以及点击水波纹效果,敬请期待。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END








- 最新
- 最热
只看作者