<Switch
android:showText="true"
android:textOff="OFF"
android:textOn="ON"
android:track="@drawable/sc_track_bg"
android:thumb="@drawable/sc_btn_bg"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
thumb是开关按钮的属性,track是滑动轨道的属性
sc_track_bg文件
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/sc_track_select" android:state_checked="true" />
<item android:drawable="@drawable/sc_track_unselect" android:state_checked="false" />
</selector>
sc_track_select 文件
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#00FF00" />
<corners android:radius="24dp" />
</shape>
sc_track_unselect文件
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#E3E3E3" />
<corners android:radius="24dp" />
</shape>
sc_btn_bg文件
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/sc_btn_select" android:state_checked="true" />
<item android:drawable="@drawable/sc_btn_select" android:state_checked="false" />
<item android:drawable="@drawable/sc_btn_press" android:state_pressed="true" />
<item android:drawable="@drawable/sc_btn_select" android:state_pressed="false" />
</selector>
sc_btn_select文件
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<size
android:width="24dp"
android:height="24dp" />
<solid android:color="@android:color/white" />
</shape>
sc_btn_press文件
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval">
<size android:height="28dp" android:width="28dp"/>
<solid android:color="@android:color/white"/>
<stroke android:color="#E3E3E3" android:width="4dp"/>
</shape>
若想要修改文字的颜色 在res文件夹下建一个color文件夹,定义一个文本颜色状态的selector:switch_text_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="#FFF" android:state_checked="false" />
<item android:color="#000" android:state_checked="true" />
</selector>
修改样式
<style name="SwitchTheme" parent="@android:style/TextAppearance.Small">
<item name="android:textColor">@color/switch_text_selector</item>
</style>
设置给Switch
android:switchTextAppearance="@style/SwitchTheme"