为什么 android 中的背景重叠可绘制资源

why is background overlapping drawable resource in android

当我偶然发现一些我无法完全理解的东西时,我正在学习一个教程。这是我用作图像按钮源的可绘制资源。

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

    <item>
        <shape
            android:shape="rectangle">
            <stroke android:width="2dp"
                android:color="@color/light_silver"/>

            <padding android:bottom="0dp"
                android:left="0dp"
                android:right="0dp"
                android:top="0dp"/>
        </shape>
    </item>

    <item>
        <shape android:shape="rectangle">
            <stroke android:width="2dp"
                android:color="@color/light_silver"/>
            <solid android:color="#00000000"/>
            <corners android:radius="10dp"/>
        </shape>
    </item>
</layer-list>

这是 ImageButton

<ImageButton
            android:layout_height="25dp"
            android:layout_width="25dp"
            android:layout_margin="2dp"
            android:src="@drawable/pallet_normal"
            android:background="@color/yellow"
            android:tag="@color/yellow"/>

这是由此创建的结果。

我不明白为什么背景与可绘制资源重叠。 drawable 的中间不应该是黑色的,因为那是我在 solid 标签中设置的吗?请帮忙,我很困惑。

您通过将 alpha 通道设置为 00 来使用透明颜色,这使颜色完全透明;要使其完全不透明,您可以将其设置为 ff >> <solid android:color="#ff000000"/> 或仅使用 6 位颜色移除 alpha 通道 >> <solid android:color="#000000"/>.

有关使用 android 中字母数字的额外帮助,请查看 this question