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"
当我在按钮上使用默认背景时,我点击按钮,按钮的背景会变成深灰色。
但是当我更改按钮背景(自定义图像)时,默认的点击效果(深灰色)消失了。
如何在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"