添加可绘制文件后Android按钮边框保持默认
Posted
技术标签:
【中文标题】添加可绘制文件后Android按钮边框保持默认【英文标题】:Android button border stay deafault after adding drawable file 【发布时间】:2021-12-06 23:19:54 【问题描述】:我正在 android studio 中开发一个项目,我正在尝试将边框更改为我的按钮。 当我将它添加到我的网格时,我的默认按钮如下所示:
在可绘制文件中添加新的 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:
android:color="#000000" />
</shape>
结果是它正在创建我可以看到的下一个形状:
这正是我想要添加到按钮的内容。
当我回到主文件中的 XML 并将下一行添加到我的按钮时:
正如您在第 226 行中看到的那样,我正在将刚刚为该按钮创建的背景添加到按钮中。在这条线附近,有我想要的确切边界。 但在应用程序中,该按钮仍与默认按钮相同,没有添加任何边框。 像这样:
有人知道drawable文件不影响按钮的原因吗? 如果我对 textView 或其他东西做同样的事情,它工作得很好,只是按钮看起来不受他的可绘制扩展的影响。
谢谢!
【问题讨论】:
【参考方案1】:您需要将此属性添加到您的按钮:
app:backgroundTint="@null"
如果它同时具有android:background
和app:backgroundTint
两个属性(如果你的应用程序使用默认主题,它有一个默认值),app:backgroundTint
指定的颜色将覆盖在drawable的形状上。
【讨论】:
【参考方案2】:按钮的边框尝试编辑可绘制文件夹中的 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" />
【讨论】:
以上是关于添加可绘制文件后Android按钮边框保持默认的主要内容,如果未能解决你的问题,请参考以下文章
如何为以编程方式存储在变量中的按钮添加 android 可绘制文件的值?
android如何实现imageview默认是灰色,被点击后变成蓝色,(详情请看图片)并保持是蓝色