图片 "inside" 按钮同时保持标准动画

Image "inside" button while keeping standard animations

我想在 Android 到 XML 中定义一个按钮,它在标准按钮图形下方(单击时改变颜色,略微圆润的边缘,...),显示一个我选择的形象。我希望最终产品有点像这样:

我已经尝试更改 ImageButton 的 srcbackground,但它没有提供预期的效果。你能告诉我一些实现这个的方法吗?

也许这并不完全是您所说的 标准 的意思,但是当您设置背景时,您最终不得不在单击按钮时重新创建行为。在 Android 中,最好的方法是使用 selector 作为按钮的背景。创建一个包含 selector 的 XML 可绘制对象。

示例:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:drawable="@drawable/button_bg_pressed" />
    <item android:drawable="@drawable/button_bg_default" />
</selector>

这样,当您点击按钮时,它会将背景更改为其他符合您要求的图像。

编辑:

  1. 如果您需要,还有其他修饰符,例如focused
  2. 如果你想要 Lollipop 的涟漪效果,我想你可以创建一个 Layout 并将你的按钮放在里面。更改 Layout 背景并将按钮背景设置为透明。如果这不起作用,请尝试将 android:background="?android:attr/selectableItemBackground" 添加到您的按钮。

正如Paulo所说,你可以用选择器实现点击效果。 请参阅此答案 (),它提供了非常漂亮且可自定义的涟漪效果的代码。