上面的回答是正确的。以下是一个小例子,展示如何使用形状drawable来改变开关的宽度。
我希望能对某些人有所帮助。
1)使用你的颜色作为thumb(color_thumb.xml)。
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<size android:height="40dp" />
<gradient android:height="40dp" android:startColor="#FF569BDA" android:endColor="#FF569BDA"/>
</shape>
2) 赛道的灰色颜色(gray_track.xml)
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<size android:height="40dp" />
<gradient android:height="40dp" android:startColor="#dadadada" android:endColor="#dadadada"/>
</shape>
3) 拇指选择器(thumb.xml)
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="false" android:drawable="@drawable/gray_track" />
<item android:state_pressed="true" android:drawable="@drawable/color_thumb" />
<item android:state_checked="true" android:drawable="@drawable/color_thumb" />
<item android:drawable="@drawable/gray_track" />
</selector>
4) 轨迹选择器 (track.xml)
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:drawable="@drawable/color_thumb" />
<item android:drawable="@drawable/gray_track" />
</selector>
最后在 switch 中
使用
android:switchMinWidth="56dp"
android:thumb="@drawable/thumb"
android:track="@drawable/track"