移除安卓按钮上的阴影

23

我已经搜索并尝试了所有找到的解决方案,但是我需要在Android中删除按钮上的阴影。

我找到的大多数解决方案都涉及使用imagebutton并设置其背景。我尝试了这种方法,它确实可行,但我的按钮上有文本,因此imagebutton不是一个选项。除非有一种方法可以向imagebutton中写入文本?

我的第二个解决方案是:

android:fadingEdgeLength="0dp"

但是似乎什么都没有改变。 第三点:

android:shadowColor="@color/application_transparent" />

这里也没有任何改变。

我尝试创建一个描边为0的自定义形状,并将按钮的背景设置为它,但仍然没有效果。我更喜欢在我的Xml中实现它,而不是通过编程实现,但如果那是唯一的方法,那就这样吧。提前感谢。


你自己制作一个9patch图片怎么样? - A.S.
这是我考虑的最后一招,因为我要将应用程序翻译成不同的语言,那会让翻译过程变得更加复杂,因为我必须逐个编辑每个图像,而不仅仅是字符串文件。这是唯一的方法吗? - Scottyers
仅返回翻译文本: 不是按钮的背景图像 - A.S.
抱歉,我不是很理解。 我的按钮背景只是简单的红色。但我会尝试一下。 - Scottyers
你能分享一下截图吗? - A.S.
我使用了TextView,而不是Button。现在,带有自定义背景和状态列表的按钮上令人讨厌的阴影完全消失了!这似乎是Lollipop的“特性”。我称它为另一个“克服麻烦的挑战”。 - Someone Somewhere
4个回答

71
        <Button
           ..<code>

            android:stateListAnimator="@null"

           ..<code>
       </Button>

4
太好了,欢迎来到 Stack Overflow :) 请接受此回答,这将有助于其他人。 - Vrashabh Irde
4
我的问题是: "Attribute "stateListAnimator" is only used in API level 21 and higher" :( "(“stateListAnimator”属性仅适用于API级别21及更高版本。) - fechidal89
1
太好了!你节省了我很多时间。非常感谢! - Harsh Shah
非常欢迎。这个小代码片段似乎帮助了很多人。 - Vrashabh Irde

3
在xml中为按钮设置样式属性
style="?android:attr/borderlessButtonStyle"

它起作用了。


0

在我的情况下,只需添加...

android:shadowRadius="0"

在 XML 文件中做了这个技巧。


你能确认一下是否有样式被应用到它上面,无论是在xml本地还是全局的吗? - Henrique de Sousa
1
我使用自定义渲染器修复了这个问题。 - Fabio Silva Lima

0

API级别21中使用的属性stateListAnimator的替代方案 - 我将按钮包装在线性布局中,两者具有相同的尺寸。适用于我的情况。

属性stateListAnimator的替代方案 - 适用于API级别21。我将按钮放入一个线性布局中,两者具有相同的尺寸。这对我的情况起作用。


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