android 布局引用switch方法
<Switch android:id="@+id/add_switch" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentEnd="true" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:layout_marginEnd="15dp" android:layout_marginRight="15dp" android:switchMinWidth="20dp" android:textOff="" android:textOn="" android:thumb="@drawable/thumb_selector" android:track="@drawable/track_selector" />
实现的效果如下:
下面我们着重看下thumb 和 track 这两种状态
android:thumb="@drawable/thumb_selector"
android:track="@drawable/track_selector"
thumb_selector.xml
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/thumb_on" android:state_checked="true" /> <item android:drawable="@drawable/thumb_off" /> </selector>
thumb_on.xml
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <!--高度40--> <size android:width="30dp" android:height="30dp" /> <!--圆角弧度20--> <corners android:radius="15dp" /> <!--变化率--> <gradient android:endColor="@color/white" android:startColor="@color/white" /> <stroke android:width="1dp" android:color="@color/main_color" /> </shape>
thumb_off.xml
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <!--高度40--> <size android:width="30dp" android:height="30dp" /> <!--圆角弧度20--> <corners android:radius="15dp" /> <!--变化率--> <gradient android:endColor="@color/white" android:startColor="@color/white" /> <stroke android:width="1dp" android:color="#666666" /> </shape>
track_selector.xml
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/track_on" android:state_checked="true" /> <item android:drawable="@drawable/track_off" /> </selector>
track_on.xml
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <!--高度40--> <size android:width="30dp" android:height="30dp" /> <!--圆角弧度20--> <corners android:radius="15dp" /> <!--变化率--> <gradient android:endColor="@color/main_color" android:startColor="@color/main_color" /> <stroke android:color="@color/main_color" /> </shape>
track_off.xml
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <!--高度40--> <size android:width="30dp" android:height="30dp" /> <!--圆角弧度20--> <corners android:radius="15dp" /> <!--变化率--> <gradient android:endColor="@color/color_666666" android:startColor="@color/color_666666" /> <stroke android:color="#666666" /> </shape>