Java 更改背景颜色后,如何从无边框按钮获得反馈?selectableItemBackground
昨天,我试图解决我的按钮在禁用和启用后无法提供任何可见反馈的问题。 但答案不符合我的愿望——这个按钮应该是什么样子。最后,我想到我应该用抽屉来做我自己的纽扣,而不是用库存的纽扣。 但我不想改变我的按钮。 所以我希望在你的帮助下我能找到另一条路 重要的是要知道,我改变了股票按钮的方式,它是描述她: 我的xml按钮:Java 更改背景颜色后,如何从无边框按钮获得反馈?selectableItemBackground,java,android,button,borderless,Java,Android,Button,Borderless,昨天,我试图解决我的按钮在禁用和启用后无法提供任何可见反馈的问题。 但答案不符合我的愿望——这个按钮应该是什么样子。最后,我想到我应该用抽屉来做我自己的纽扣,而不是用库存的纽扣。 但我不想改变我的按钮。 所以我希望在你的帮助下我能找到另一条路 重要的是要知道,我改变了股票按钮的方式,它是描述她: 我的xml按钮: <Button android:id="@+id/buttonEat" android:layout_width
<Button
android:id="@+id/buttonEat"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackground"
android:paddingBottom="@dimen/padding_size"
android:paddingTop="@dimen/padding_size"
android:text="@string/button_eat"
android:textColor="@color/white"
android:textColorHint="@color/white"
android:textSize="@dimen/text_size" />
但一定有办法让这些按钮从selectableItemBackground恢复功能性
问题似乎是背景颜色的变化。
有人知道吗?请让我知道您可以创建一个自定义绘图,并为各种状态(启用、按下等)定义颜色,而不是更改代码中按钮的背景颜色。 要创建自定义绘图,只需在/res/drawable文件夹中创建一个XML文件,以下是一些示例内容:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="false" >
<shape>
<!-- define style for disabled state here -->
</shape>
</item>
<item android:state_pressed="true" >
<shape>
<!-- define style for pressed state here -->
</shape>
</item>
<item>
<shape>
<!-- define style for normal state here -->
</shape>
</item>
</selector>
形状标记的内容示例:
<solid
android:color="#ffffff"/>
<stroke
android:width="1dp"
android:color="#000000" />
<corners
android:radius="4dp" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
现在可以在布局xml文件中将此可绘制设置为按钮的背景。然后,您只需更改按钮的文本颜色。您可以创建自定义绘图,并定义各种状态(启用、按下等)的颜色,而不是更改代码中按钮的背景颜色。 要创建自定义绘图,只需在/res/drawable文件夹中创建一个XML文件,以下是一些示例内容:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="false" >
<shape>
<!-- define style for disabled state here -->
</shape>
</item>
<item android:state_pressed="true" >
<shape>
<!-- define style for pressed state here -->
</shape>
</item>
<item>
<shape>
<!-- define style for normal state here -->
</shape>
</item>
</selector>
形状标记的内容示例:
<solid
android:color="#ffffff"/>
<stroke
android:width="1dp"
android:color="#000000" />
<corners
android:radius="4dp" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
现在可以在布局xml文件中将此可绘制设置为按钮的背景。然后,您只需更改按钮的文本颜色。我坚决反对制作自己的自定义按钮,因为我从来没有这样做过。但是对于你的代码示例,我只是复制了它们来尝试一下,如果它能这么容易地工作的话。谢谢,现在我学到了一些新东西,可以继续了:)我坚决反对自己定制按钮,因为我从来没有做过。但是对于你的代码示例,我只是复制了它们来尝试一下,如果它能这么容易地工作的话。谢谢,现在我学到了一些新东西,可以继续前进了:)