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陰影以及點擊水波紋效果,敬請期待。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章