Android 安卓添加边框按钮

Android 安卓添加边框按钮,android,button,onclick,border,Android,Button,Onclick,Border,我需要在单击按钮时为其添加边框,并且我需要按钮的背景(我从远程获取,因此我无法使用R.drawable.picture等)保持原样 简言之,单击时,我希望向我的(自定义背景)按钮添加边框 我该怎么做?我已经阅读了很多关于边框、按钮、形状、选择器等的页面和问题,但大多数都涉及xml,但因为我在启动应用程序之前没有按钮的背景,我想我一定会以编程方式添加和删除边框。同样,我需要保留自定义按钮背景,但添加一个小的onclick边框 注意:我在所有的按钮上都使用这个,大小不同。因此,应用可提款权不是一种真

我需要在单击按钮时为其添加边框,并且我需要按钮的背景(我从远程获取,因此我无法使用
R.drawable.picture
等)保持原样

简言之,单击时,我希望向我的(自定义背景)按钮添加边框

我该怎么做?我已经阅读了很多关于边框、按钮、形状、选择器等的页面和问题,但大多数都涉及xml,但因为我在启动应用程序之前没有按钮的背景,我想我一定会以编程方式添加和删除边框。同样,我需要保留自定义按钮背景,但添加一个小的onclick边框

注意:我在所有的按钮上都使用这个,大小不同。因此,应用可提款权不是一种真正的选择。我想我一定会在点击的按钮周围画一个矩形


注2:同样,我有一个必须应用的背景。边框只是onclick事件的一个小指示器。因此,我不能在XML中加入背景是某种选择器,你可以尝试使用透明区域周围只有黑色边框的
9.png
。您可以使用选择器在按钮的“按下”状态下应用此选项。

您可以用xml定义两个层的层列表:一个层用于图像,另一个层用于边框,并将此层列表用作按钮按下状态的可绘制层。

Btn.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" >
    <shape>
        <solid
            android:color="#343434" />
        <stroke
            android:width="1dp"
            android:color="#171717" />
        <corners
            android:radius="3dp" />
        <padding
            android:left="5dp"
            android:top="5dp"
            android:right="5dp"
            android:bottom="5dp" />
    </shape>
</item>
<item>
    <shape>
        <gradient
            android:startColor="#343434"
            android:endColor="#275296"
            android:angle="270" />
        <stroke
            android:width="0dp"
            android:color="#171717" />
        <corners
            android:radius="4dp" />
        <padding
            android:left="5dp"
            android:top="5dp"
            android:right="5dp"
            android:bottom="5dp" />
    </shape>
</item>
</selector>

此处单击时,笔划属性将显示为按钮的边框

将其保存在drawable文件夹中。并使用如下所示

<Button 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/btn"
    android:textColor="@color/white"
    android:text="Button"/>


检查此链接:所有按钮的大小都不同。这是个问题吗?这在没有背景的按钮上工作。但是,已应用背景的按钮在单击时不会显示任何边框。@ChristiaandeJong您做到了吗?我的意思是用background?@System.exit Yes设置一个边框,但不能通过XML文件,因为我从外部源那里收到了资源。很久以前,但我想我拍了这张照片,把它做成了一个图层,然后把边框做成了一个9patch,然后也放到了图层上。虽然它能工作,但它看起来并不那么漂亮,所以我建议阅读一些其他帖子并制作一个自定义按钮。