创建带有自定义背景图像的圆形按钮

问题描述

所以我有一个背景纹理(图像),我把它放在我所有的按钮上。我想创建一个带有保留此背景纹理的图标的圆形按钮。

到目前为止,我注意到不支持shape 端执行此操作:

<shape android:shape="rectangle">
    <solid android:color="@drawable/myTexture" /> <!-- this isn't supported -->
</shape>

最后我会尝试使用 <layer-list>,但是正如我上面所说的,我仍然需要将纹理裁剪为我正在创建的形状。

这是制作我自己的结合背景纹理和按钮图标的圆形图像的唯一方法吗?这似乎有点过分,因为我认为应该有一种程序化的方式来实现这一点,但我可能是错的。

这是我上面的意思的一个例子:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/myTexture" />
    <item>
        <shape android:shape="rectangle">
            <corners android:radius="40dp" />
            <size
                android:height="80dp"
                android:width="80dp" />
            <solid android:color="@color/black" />
        </shape>
    </item>
</layer-list>

在下图中:黑色是圆形,银色是纹理/图像(黑色用于对比)

enter image description here

解决方法

我还没有解决编程方式,但我最终创建了结合图标和背景纹理的新图形。使用这个单一的图像,我能够创建圆形 ImageButton