如何正确叠加图层列表中的位图和形状

zel*_*lla 2 android android-layout

我想在左侧制作带有白色边框和位图的按钮:

在此处输入图片说明

我有xml的背景:

<layer-list
    xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape>
            <corners android:radius="10.0dip"/>
            <stroke
                android:width="2px"
                android:color="@android:color/white"/>
        </shape>
    </item>
    <item>
        <bitmap
            android:gravity="left"
            android:src="@drawable/vk_login">
        </bitmap>
    </item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)

结果是:

在此处输入图片说明

我不知道如何从位图制作边框和切角。使背景像第一张图片的最佳方法是什么?

Hit*_*its 5

我已经按照您的要求创建了形状文件:

1)这是您的可绘制对象,名为:btn_vk_drawable.xml

<?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="#FABC38"></solid>
            <padding
                android:bottom="10dp"
                android:left="10dp"
                android:right="10dp"
                android:top="10dp" />
        </shape>
    </item>
    <item>
        <bitmap
            android:gravity="left|center_horizontal"
            android:src="@drawable/vk_login"></bitmap>
    </item>
    <item>
        <shape>
            <corners android:radius="10dip" />
            <stroke
                android:width="2px"
                android:color="@android:color/white" />
        </shape>
    </item>

</layer-list>
Run Code Online (Sandbox Code Playgroud)

2)在布局xml中,您可以定义如下按钮:

 <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="100dp"
        android:background="@drawable/btn_vk_drawable"
        android:text="VK"
        android:ems="12"
        android:textAlignment="center" />
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

使用9补丁:btn_vk_drawable.xml

<?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="#FABC38"></solid>
            <padding
                android:bottom="10dp"
                android:left="10dp"
                android:right="10dp"
                android:top="10dp" />
        </shape>
    </item>
    <item>
        <!--<bitmap-->
        <!--android:gravity="left|center_horizontal"-->
        <!--android:src="@drawable/t"></bitmap>-->
        <nine-patch
            android:dither="true"
            android:src="@drawable/common_signin_btn_text_normal_dark.9" />
    </item>

</layer-list>
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明