Android中更改按钮背景时如何保持默认点击效果?

how to keep default click effect when I change button background in Android?

当我在按钮上使用默认背景时,我点击按钮,按钮的背景会变成深灰色。

但是当我更改按钮背景(自定义图像)时,默认的点击效果(深灰色)消失了。

如何在android中更改按钮背景时保持默认点击效果?

那么您可以将其称为 选择器 而不是点击效果。发生的情况是,您在 drawable 文件夹中创建了一个文件,其中包含 Button 的不同状态的替代背景颜色或图像。选择器文件可以是这样的:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/image_when_selected" android:state_selected="true"></item>
    <item android:drawable="@drawable/image_when_pressed" android:state_pressed="true"></item>
    <item android:drawable="@drawable/image_normal"></item>
</selector>

因此您可以放置​​图像或颜色,但最后您必须将整个文件设置为 Button 背景,例如:

<Button
 android:id="@+id/button"
 android:background="@drawable/my_selector"
 android:layout_width="200dp"
 android:layout_height="126dp"/>

因此默认按钮点击有一个默认选择器,如果您更改背景,也会使用图像或颜色更改选择器。

使用这个属性

android:foreground="?attr/selectableItemBackgroundBorderless"