自定义Switch
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="#1ce91c" android:state_checked="true" />
<item android:color="#c2c2c2" />
</selector>
<?xml version="1.0" encoding="utf-8"?>
<inset xmlns:android="http://schemas.android.com/apk/res/android"
android:insetBottom="9dp"
android:insetTop="9dp">
<shape android:shape="rectangle">
<solid android:color="#F000" />
<size android:height="4dp" />
<corners android:radius="8dp" />
</shape>
</inset>
<!-- 这里使用 InsetDrawable 来设置上下间距,调整轨道高度 -->
<!-- InsetDrawable 相关文档地址 https://developer.android.com/guide/topics/resources/drawable-resource.html?hl=zh-cn#Inset -->
<android.support.v7.widget.SwitchCompat
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="switch"
app:switchMinWidth="48dp"
app:switchPadding="8dp"
app:thumbTint="#ffffff"
app:track="@drawable/switch_track"
app:trackTint="@color/switch_track_tint" />
<!-- track 自定义轨道样式 -->
<!-- trackTint 自定义轨道颜色,在轨道drawable中只需将颜色设置为黑色即可 -->
<!-- thumbTint 自定义开关按钮颜色 -->
<!-- switchMinWidth 自定义Switch宽度 -->
<!-- Switch自定义样式,默认情况下开关按钮和滑动轨道的高度是一样的,并且在xml文件中对轨道的宽高设置是无效的 -->
<!-- 轨道高度低于开关按钮高度:轨道增加一个透明的边框 -->
<!-- 轨道高度高于开关按钮高度:开关按钮增加一个透明的边框 -->
<!-- 轨道的宽度会随着开关按钮的宽度自动变化,如果想要修改轨道的宽度,修改开关按钮的宽度就可以了 -->