创建自定义平面开关 android

Create custom flat switch android

我想制作一个自定义开关,如下图所示。

我创建了两个可绘制资源,一个是 switch_bg,另一个是 tracker_bg。

switch_bg.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_pressed="true" />
    <item android:drawable="@drawable/thumb_off" android:state_enabled="false" />
    <item android:drawable="@drawable/thumb_on" android:state_checked="true" />
    <item android:drawable="@drawable/thumb_off" />
</selector>

tracker_bg.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/ic_tracker" android:state_enabled="false" />
    <item android:drawable="@drawable/ic_tracker" android:state_pressed="true" />
    <item android:drawable="@drawable/ic_tracker" android:state_checked="true" />
    <item android:drawable="@drawable/ic_tracker" />
</selector>

在主 xml 中,我输入了以下代码。

<Switch
  android:id="@+id/switch1"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:checked="true"
  android:layout_marginRight="20dp"
  android:thumb="@drawable/switch_bg"
  android:track="@drawable/track_bg"/>

请指导我我做错了什么或者我这边缺少什么。

试试这个示例,它可能对您有所帮助。Click here