我正在android工作室做一个项目,我试图把边框改成我的按钮。当我将其添加到网格中时,默认按钮如下所示:

在可绘制文件中添加新的XML文件(称为box_solid_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="4dp"
android:color="#000000" />
</shape>其结果是,它正在创建我能看到的下一个形状:

,这正是我想要添加到我的按钮中的.
当我回到主文件中的XML并将下一行添加到我的按钮时:

正如您在第226行中所看到的,我正在将刚才为该按钮创建的背景添加到按钮中。在这条线附近,有我想要的确切的边界。但在应用程序中,该按钮仍然与默认按钮相同,没有向其添加边框。如下所示:

有人知道可绘制文件不影响按钮的原因吗?如果我对一个textView或它的其他东西做同样的事情,它的工作非常好,只是按钮看起来不受他的可绘图扩展的影响。
谢谢!
发布于 2021-10-20 06:40:43
您需要将此属性添加到按钮中:
app:backgroundTint="@null"如果它同时具有android:background和app:backgroundTint属性(如果您对应用程序使用默认主题,则它具有默认值),则app:backgroundTint指定的颜色将覆盖在可绘制形状上。
发布于 2021-10-20 10:43:25
若要边框按钮,请尝试在可绘图文件夹中编辑box_solid_border.xml。
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke android:color="@color/black"
android:width="5dp"/>
<corners android:radius="8dp"/>
<solid android:color="@color/colorAccent"/>
</shape>
在布局xml文件中
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/box_solid_border"
android:text="Button"
android:textColor="#fff"
android:textSize="30sp" />
https://stackoverflow.com/questions/69640860
复制相似问题