是否可以在形状上有多个边框?

时间:2018-01-19 19:14:23

标签: android

我想知道是否有可能在形状上有多个边框/“笔画”元素,或者我是否需要使用图像(或一堆形状相互覆盖)。我的代码:

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

    <item>        
        <shape>
            <gradient
                android:endColor="@color/editTextBG"
                android:startColor="@color/editTextBG"
                android:angle="270" />
            <stroke
                android:width="1dp"
                android:color="@color/editTextEdgeInner" />
            <stroke
                android:width="1dp"
                android:color="@color/editTextEdgeCenter" />
            <stroke
                android:width="1dp"
                android:color="@color/editTextEdgeOuter" />
            <corners
                android:radius="3dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>
    </item>

</selector>

我尝试过只使用代码,但是没有效果,并且给早期的笔划增加了更大的宽度(以便后面的,如果被绘制,只会着色部分)。然而,似乎最后一击超越了其他人?

1 个答案:

答案 0 :(得分:1)

边框的解决方法是覆盖元素:

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

    <item>
        <color android:color="@color/colorAccent"/>
    </item>

    <item android:top="8dp">
        <color android:color="@color/colorPrimaryDark"/>
    </item>

    <item android:top="16dp">
        <color android:color="@color/colorPrimary"/>
    </item>

    <item android:top="32dp" android:right="8dp">
        <color android:color="@android:color/holo_red_dark"/>
    </item>

</layer-list>

这是结果: multi bordered drawable android

layer-list中从上到下的第一个元素是背景,其他所有元素都安装在顶部。