图片 "inside" 按钮同时保持标准动画
Image "inside" button while keeping standard animations
我想在 Android 到 XML 中定义一个按钮,它在标准按钮图形下方(单击时改变颜色,略微圆润的边缘,...),显示一个我选择的形象。我希望最终产品有点像这样:
我已经尝试更改 ImageButton 的 src
和 background
,但它没有提供预期的效果。你能告诉我一些实现这个的方法吗?
也许这并不完全是您所说的 标准 的意思,但是当您设置背景时,您最终不得不在单击按钮时重新创建行为。在 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>
这样,当您点击按钮时,它会将背景更改为其他符合您要求的图像。
编辑:
- 如果您需要,还有其他修饰符,例如
focused
。
- 如果你想要 Lollipop 的涟漪效果,我想你可以创建一个
Layout
并将你的按钮放在里面。更改 Layout
背景并将按钮背景设置为透明。如果这不起作用,请尝试将 android:background="?android:attr/selectableItemBackground"
添加到您的按钮。
正如Paulo所说,你可以用选择器实现点击效果。
请参阅此答案 (),它提供了非常漂亮且可自定义的涟漪效果的代码。
我想在 Android 到 XML 中定义一个按钮,它在标准按钮图形下方(单击时改变颜色,略微圆润的边缘,...),显示一个我选择的形象。我希望最终产品有点像这样:
我已经尝试更改 ImageButton 的 src
和 background
,但它没有提供预期的效果。你能告诉我一些实现这个的方法吗?
也许这并不完全是您所说的 标准 的意思,但是当您设置背景时,您最终不得不在单击按钮时重新创建行为。在 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>
这样,当您点击按钮时,它会将背景更改为其他符合您要求的图像。
编辑:
- 如果您需要,还有其他修饰符,例如
focused
。 - 如果你想要 Lollipop 的涟漪效果,我想你可以创建一个
Layout
并将你的按钮放在里面。更改Layout
背景并将按钮背景设置为透明。如果这不起作用,请尝试将android:background="?android:attr/selectableItemBackground"
添加到您的按钮。
正如Paulo所说,你可以用选择器实现点击效果。 请参阅此答案 (),它提供了非常漂亮且可自定义的涟漪效果的代码。