如何在 Android 中使按钮的背景透明并带有可见边框?

How to make a background of a button transparent with visible border in Android?

这是按钮的编码。我只想让边框可见,按钮的背景应该是 invisible.But 使用此代码,一切都变得不可见。

<Button
    android:id="@+id/button3"
    android:layout_width="200dp"
    android:layout_height="60dp"
    android:text="Sign In"
    android:textAllCaps="false"
    android:layout_gravity="center"
    android:layout_marginTop="50dp"
    android:textColor="@color/white"
   android:background="@android:color/transparent"

我希望我的按钮看起来像这样。

 <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:background="@drawable/button_bg"/>

button_bg.xml:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
       android:shape="rectangle">
  <corners
      android:radius="2dp" />
  <stroke
      android:width="2px"
      android:color="@color/your_border_color" />
</shape>

使用drawable,创建shape.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <corners android:radius="1000dp" /> //your radius
    <stroke android:width="3px" android:color="#FFF" /> //your stroke size
</shape>

然后在xml

中实现
<Button
    android:id="@+id/button3"
    android:layout_width="200dp"
    android:layout_height="60dp"
    android:text="Sign In"
    android:textAllCaps="false"
    android:layout_gravity="center"
    android:layout_marginTop="50dp"
    android:textColor="@color/white"
   android:background="@drawable/shape" />

你应该把你的按钮放在像这样的矩形内:

在可绘制目录中创建butoon_backgound.xml:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
  android:shape="rectangle">
  <gradient android:startColor="#FFFFFF" 
    android:endColor="#00FF00"
    android:angle="270" />
  <corners android:radius="3dp" />
  <stroke android:width="2px" android:color="#000000" />
</shape>
<RelativeLayout
        android:id="@+id/container"
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:background="@drawable/butoon_backgound"
>

<Button
    android:id="@+id/button3"
    android:layout_width="200dp"
    android:layout_height="200dp"
    android:text="Sign In"
    android:textAllCaps="false"
    android:layout_gravity="center"
    android:layout_marginTop="50dp"
    android:textColor="@color/white"
   android:background="@android:color/transparent"

</RelativeLayout>

stroke 属性是边框的笔划

在您的可绘制文件夹中创建一个 button_border.xml 文件并粘贴此代码

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >

<stroke
    android:width="3dp"
    android:color="#FFFFFF" />

将按钮添加到 xml 布局并将背景设置为

<Button
        android:id="@+id/button3"
        android:layout_width="200dp"
        android:layout_height="60dp"
        style="?android:attr/buttonStyleSmall"
        android:text="Sign In"
        android:textAllCaps="false"
        android:layout_gravity="center"
        android:layout_marginTop="50dp"
        android:layout_marginLeft="50dp" 
        android:textColor="@color/white"
        android:background="@drawable/button_border"/>