最近有需求要开发ios样式的switch开关,查阅相关资料,最终完美解决,代码如下:
<Switch
android:id="@+id/system_tone_img"
android:layout_width="@dimen/dp_80"
android:layout_height="@dimen/dp_20"
android:layout_below="@id/hovermenu_dividing"
android:layout_toRightOf="@id/system_tone_title"
android:layout_marginLeft="@dimen/dp_420"
android:layout_marginTop="@dimen/dp_20"
android:thumb="@drawable/switch_ios_thumb"
android:track="@drawable/switch_ios_track_selector"
android:clickable="true"/>
1.switch_ios_thumb.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="#FFF" />
<stroke
android:width="2px"
android:color="#00000000" />
<size
android:width="25px"
android:height="25px" />
</shape>
2.switch_ios_track_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/switch_ios_track_on" android:state_checked="true" />
<item android:drawable="@drawable/switch_ios_track_off" android:state_checked="false" />
</selector>
3.switch_ios_track_on.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/darker_gray" />
<corners android:radius="25px" />
</shape>
4.switch_ios_track_off.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/darker_gray" />
<corners android:radius="25px" />
</shape>
通过设置这些样式就可以完美实现ios样式