乘月网
专注于移动互联网

Android自定义Switch View控件CySwitch

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

CySwitch开源库地址:https://github.com/ausboyue/CySwitch

效果演示

效果演示

在项目中使用

  1. 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" />
  1. 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阴影以及点击水波纹效果,敬请期待。

赞(2) 打赏
未经允许不得转载:乘月网 » Android自定义Switch View控件CySwitch

评论 2

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1
    头像

    赞一个,学习了

    SSR节点 3个月前 (05-14) 来自天朝的朋友 火狐浏览器 Windows 10 回复

专注于移动互联网

CSDNGithub

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏