美文网首页
Android Switch 实现

Android Switch 实现

作者: _发强 | 来源:发表于2021-09-25 18:00 被阅读0次

用 Android 基础 Switch 控件实现自定义样式,

先上效果:

image.png

实现代码:

布局中写法:

                <Switch
                    android:id="@+id/switchBtn"
                    android:layout_width="wrap_content"
                    android:layout_height="@dimen/dp_26"
                    android:layout_alignParentEnd="true"
                    android:layout_centerVertical="true"
                    android:layout_marginEnd="@dimen/dp_15"
                    android:thumb="@drawable/switch_thumb"
                    android:track="@drawable/switch_track_selector" />

相关配置文件

  • switch_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="@color/c_ff71a5" />
<!--  stroke 用来控制中间实心按钮的外边距  -->
    <stroke
        android:width="@dimen/dp_6"
        android:color="#00000000" />
<!--  size 设置整体大小  -->
    <size
        android:width="@dimen/dp_26"
        android:height="@dimen/dp_26" />
</shape>
  • switch_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_track_on" android:state_checked="true" />
    <item android:drawable="@drawable/switch_track_off" android:state_checked="false" />
</selector>
  • switch_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="@color/c_ff71a5_20" />

    <corners android:radius="@dimen/dp_15" />

</shape>
  • switch_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="@color/color_f4" />

    <corners android:radius="@dimen/dp_15" />

</shape>

相关文章

网友评论

      本文标题:Android Switch 实现

      本文链接:https://www.haomeiwen.com/subject/rzixnltx.html