Android 中视图的可绘制边框,左边距或右边距

Border drawable for a view in Android with margins on left or right

我需要为视图绘制边框。我按如下方式进行了操作。但我还需要在 Left/Right 方面留出一些边距。

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item>
        <shape android:shape="rectangle">
            <solid android:color="@android:color/transparent"/>
        </shape>
    </item>

    <item
        android:left="-2dp"
        android:right="-2dp"
        android:top="-2dp">
        <shape>
            <stroke
                android:width="2dp"
                android:color="@color/border_color"/>
        </shape>
    </item>
</layer-list>

我尝试了一些插图,但没有得到想要的结果。

我该怎么做?

Insets 应该可以工作,但您可能没有找到使用它们的正确解决方案。这是您需要的工作示例:

<inset xmlns:android="http://schemas.android.com/apk/res/android"
    android:insetLeft="16dp"
    android:insetRight="16dp">
    <layer-list>      
        <item>
            <shape android:shape="rectangle">
                <solid android:color="@android:color/transparent"/>
            </shape>
        </item>

        <item
            android:left="-2dp"
            android:right="-2dp"
            android:top="-2dp">
            <shape>
                <stroke
                    android:width="2dp"
                    android:color="@color/border_color"/>
            </shape>
        </item>
    </layer-list>
</inset>