如何在Android中使按钮背景透明且具有可见边框?

3
这是按钮的编码。我希望只显示边框,按钮的背景应该是透明的。但是使用这个代码,一切都变成透明了。
<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"

enter image description here

我想让我的按钮看起来像这样。


创建矩形可绘制对象 - Pavya
你可以为此创建背景可绘制对象,并将其用作按钮的背景。 - Pragnesh Ghoda シ
@Abhishek 你实现了吗? - Mohammad Arman
@ Mohammad Arman,已经实现了。谢谢 :) - Abhishek verma
4个回答

4
 <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>

2px 应该改为 2dp。 - portfoliobuilder

1
使用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" />

0

你应该将按钮放在一个矩形形状内,像这样:

在drawable目录中创建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 属性是你边框的描边


0

enter image description here

在您的drawable文件夹中创建一个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"/>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接