【问题标题】:how to make custom SwitchCompat如何制作自定义 SwitchCompat
【发布时间】:2019-08-06 17:25:39
【问题描述】:

我想自定义 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]

output i got from above implementation

我想要的输出如下

out put i want

【问题讨论】:

    标签: android switchcompat


    【解决方案1】:

    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"/>
    

    【讨论】:

    • 选中开关时如何更改拇指颜色?
    • 要更改拇指或轨道的状态颜色,您应该能够使用状态颜色列表...
    猜你喜欢
    • 2020-12-26
    • 1970-01-01
    • 2012-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-20
    相关资源
    最近更新 更多