Android 自定义ios样式的Switch开关

最近有需求要开发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样式

发布了262 篇原创文章 · 获赞 2 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/baidu_41666295/article/details/105679531