使用Drawable而不是形状

时间:2014-01-29 15:42:41

标签: android button drawable shape

有没有办法用 drawable stroke 创建 XML drawable

通常我们使用带有笔画的形状,如下代码:

        <item android:state_pressed="true">
        <shape>
            <gradient
                android:angle="270.0"
                android:endColor="@color/rounded_container_bg"
                android:startColor="@color/rounded_container_bg" />

            <corners android:radius="11.0dip" />
        </shape>
    </item>
    <item>
        <shape>
            <stroke
                android:width="1.0px"
                android:color="@color/rounded_container_border" />

我认为在这段代码中不可能使用drawable但是有没有其他方法可以用它来创建一个被笔画包围的图像?

我需要这种方法来创建按钮,我想使用带有描边的背景图像(PNG)。

由于

2 个答案:

答案 0 :(得分:1)

使用LayerDrawable(在xml中称为Layer-List

LayerDrawable programmatically

您可以将xml中的形状与在代码和位图中绘制的drawable混合,并将其用作单个Drawable。

答案 1 :(得分:0)

您可以使用ImageButton代替普通按钮

<ImageButton
    android:background="your_drawable_shape"
    android:src="your_image"
/>

或者您可以使用LayerDrawable

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/stroke_drawable"/>
    <item android:drawable="@drawable/your_image" />
</layer-list>