<Switch
android:id="@+id/switch_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="18dp"
android:checked="true"
android:track="@drawable/switch_track"//设置滑动轨迹图片
android:theme="@style/mySwitch"//设置开关主题
/>
设置滑动轨迹图片,轨迹和按钮一样高
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_checked="true"
android:drawable="@drawable/switch_track_on"></item>
<item
android:drawable="@drawable/switch_track_off"></item>
</selector>
可以设置开关颜色和关闭时 的轨迹颜色,不能修改打开时的轨迹颜色
<!--自定义switch的按钮和轨迹颜色theme-->
<style name="mySwitch" parent="Theme.AppCompat.Light">
<!-- switch打开时的按钮的颜色 打开时的轨迹的颜色 30%这个颜色-->
<item name="colorControlActivated">@color/mainTitleBg</item>
<!-- switch关闭时的按钮的颜色 -->
<item name="colorSwitchThumbNormal">@color/bgWhite</item>
<!-- switch关闭时的轨迹的颜色 -->
<item name="colorForeground">@color/bgWhite</item>
</style>
如果想要轨迹比按钮低的话,可以自定义xml,设置透明的边框
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid
android:color="@android:color/white">
</solid>
<corners
android:radius="32dp">
</corners>
<!-- results in the track looking smaller than the thumb -->
<stroke
android:width="6dp"
android:color="#00ffffff"/>
</shape>