1

我想自定义 Switch 但我无法更改 Switch 的边框颜色

我曾尝试更改 Switch thumb、track 属性,但只需 10% 即可达到要求

我制作了两个可绘制 XMl 1.switch_thumb_custom 2.switch_track_custom 作为名称定义,您可以找到代码的更多详细信息

1.switch_thumb_custom

<?xml version="1.0" encoding="utf-8"?>
<layer-list
    xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="oval">
            <solid android:color="@color/mix_color" />
        </shape>
    </item>
    <item>
        <shape android:shape="oval">
            <solid android:color="@color/mix_color" />
        </shape>
    </item>
    <item android:width="40dp"
        android:height="40dp">>
        <bitmap android:src="@drawable/on_dot"
            android:tint="@color/mix_color" />
    </item>
</layer-list>

2. switch_track_custom

[<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:end="-40dp"
        android:gravity="center_vertical|fill_horizontal"
        android:start="-40dp">
        <shape
            android:shape="rectangle"
            android:tint="@color/switch_color">
            <corners android:radius="50dp" />
            <solid android:color="@color/mix_color" />
            <size android:height="30dp" />
        </shape>
    </item>

</layer-list>][1]

我从上面的实现中得到的输出

我想要的输出如下

输出我想要

4

1 回答 1

0

custom_track.xml :

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <stroke
        android:width="3dp"
        android:color="@android:color/holo_red_dark"/>
    <solid
        android:color="@android:color/white"/>
    <corners
        android:radius="20dp"/>
</shape>

custom_thumb.xml :

<?xml version="1.0" encoding="utf-8"?>
<layer-list
    xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="oval">
            <solid android:color="@android:color/holo_red_dark" />
            <size android:width="40dp" android:height="40dp" />
        </shape>
    </item>
</layer-list>

如下使用它:

<!--<android.support.v7.widget.SwitchCompat if not using androidx-->
<androidx.appcompat.widget.SwitchCompat 
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:track="@drawable/custom_track"
        android:thumb="@drawable/custom_thumb"
        android:checked="true"/>
于 2019-08-06T18:23:49.423 回答