GitHub地址:https://github.com/zcweng/SwitchButtonjava
gradle: android
repositories { mavenCentral() jcenter() } ... dependencies { compile 'com.github.zcweng:switch-button:0.0.3@aar' }
xml中使用:git
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" xmlns:app="http://schemas.android.com/apk/res-auto" android:orientation="vertical"> <com.suke.widget.SwitchButton android:id="@+id/switch_button" android:layout_width="wrap_content" android:layout_height="wrap_content"/> </LinearLayout>
activity.java:github
com.suke.widget.SwitchButton switchButton = (com.suke.widget.SwitchButton) findViewById(R.id.switch_button); switchButton.setChecked(true); switchButton.isChecked(); switchButton.toggle(); //switch state switchButton.toggle(false);//switch without animation switchButton.setShadowEffect(true);//disable shadow effect switchButton.setEnabled(false);//disable button switchButton.setEnableEffect(false);//disable the switch animation switchButton.setOnCheckedChangeListener(new SwitchButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(SwitchButton view, boolean isChecked) { //TODO do your job } });
more style:app
<attr name="sb_shadow_radius" format="reference|dimension"/> 陰影半徑 <attr name="sb_shadow_offset" format="reference|dimension"/> 陰影偏移 <attr name="sb_shadow_color" format="reference|color"/> 陰影顏色 <attr name="sb_uncheck_color" format="reference|color"/> 關閉顏色 <attr name="sb_checked_color" format="reference|color"/> 開啓顏色 <attr name="sb_border_width" format="reference|dimension"/> 邊框寬度 <attr name="sb_checkline_color" format="reference|color"/> 開啓指示器顏色 <attr name="sb_checkline_width" format="reference|dimension"/> 開啓指示器線寬 <attr name="sb_uncheckcircle_color" format="reference|color"/> 關閉指示器顏色 <attr name="sb_uncheckcircle_width" format="reference|dimension"/> 關閉指示器線寬 <attr name="sb_uncheckcircle_radius" format="reference|dimension"/>關閉指示器半徑 <attr name="sb_checked" format="reference|boolean"/> 是否選中 <attr name="sb_shadow_effect" format="reference|boolean"/> 是否啓用陰影 <attr name="sb_effect_duration" format="reference|integer"/> 動畫時間,默認300ms <attr name="sb_button_color" format="reference|color"/> 按鈕顏色 <attr name="sb_show_indicator" format="reference|boolean"/> 是否顯示指示器,默認true:顯示 <attr name="sb_background" format="reference|color"/> 背景色,默認白色 <attr name="sb_enable_effect" format="reference|boolean"/> 是否啓用特效,默認true
也能夠直接把SwitchButton.java和switch_btton_attr.xml複製到項目中直接使用maven
<com.example.switchbuttondemo1.customview.SwitchButton android:layout_width="100dp" android:layout_height="50dp" android:id="@+id/switchbutton" android:layout_centerInParent="true" app:sb_shadow_color="#f00" app:sb_uncheck_color="#0f0" app:sb_checked_color="#f0f" app:sb_border_width="3dp" app:sb_checkline_color="#f00" app:sb_checkline_width="5dp" app:sb_uncheckcircle_color="#f00" app:sb_uncheckcircle_radius="10dp" app:sb_uncheckcircle_width="2dp" app:sb_button_color="#0ff" app:sb_show_indicator="false" />