首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在layer-list中正确覆盖位图和形状

如何在layer-list中正确覆盖位图和形状
EN

Stack Overflow用户
提问于 2015-12-16 19:04:33
回答 2查看 9.4K关注 0票数 2

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

我有xml作为背景:

代码语言:javascript
复制
<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>

结果是:

我不知道如何从位图中创建边框和裁剪边角。让背景像第一张图片的最好方法是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-16 20:16:19

我已经根据您的要求创建了shape文件:

1)这是您的绘图文件,名称为: btn_vk_drawable.xml

代码语言:javascript
复制
<?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>

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

代码语言:javascript
复制
 <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" />

使用9补丁: btn_vk_drawable.xml

代码语言:javascript
复制
<?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>

票数 5
EN

Stack Overflow用户

发布于 2015-12-16 20:10:56

你只需要在你的代码中添加填充:

我已经更新了你的代码:

代码语言:javascript
复制
<item>
    <shape>
        <padding
            android:bottom="5dp"
            android:left="5dp"
            android:right="5dp"
            android:top="5dp" />

        <corners android:radius="10.0dip" />

        <stroke
            android:width="2px"
            android:color="@android:color/black" />
    </shape>
</item>
<item>
    <bitmap
        android:gravity="left"
        android:src="@drawable/bg_casedetail_audio" >
    </bitmap>
</item>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34310335

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档