对于在 Android 中使用自定义背景图像的按钮,如何使按钮显示它已被单击(通过将其设置为向下/进行一些更改)。我不想包含更多图像并将不同的图像设置为不同的状态,如 google hello views 示例中所示。谢谢。
原文由 Pritam 发布,翻译遵循 CC BY-SA 4.0 许可协议
对于在 Android 中使用自定义背景图像的按钮,如何使按钮显示它已被单击(通过将其设置为向下/进行一些更改)。我不想包含更多图像并将不同的图像设置为不同的状态,如 google hello views 示例中所示。谢谢。
原文由 Pritam 发布,翻译遵循 CC BY-SA 4.0 许可协议
你必须使用两个图像来做到这一点。
然后在 drawable 文件夹中创建一个 xml 资源
<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="false"
android:drawable="@drawable/button_normal" />
<item android:state_pressed="true"
android:drawable="@drawable/button_pressed" />
</selector>
然后,将此文件设置为 imageview 的背景。这里我们使用 imageview 作为按钮。不要忘记将这两个按钮包含在可绘制文件夹中。而已。
原文由 Praveen 发布,翻译遵循 CC BY-SA 2.5 许可协议
3 回答958 阅读✓ 已解决
2 回答1k 阅读✓ 已解决
1 回答837 阅读✓ 已解决
2 回答946 阅读
2 回答886 阅读
1 回答820 阅读
2 回答689 阅读
使用 ColorFilter 方法可以只处理一个图像文件。但是,ColorFilter 希望与 ImageViews 而不是 Buttons 一起工作,因此您必须将按钮转换为 ImageViews。如果您无论如何都使用图像作为按钮,这不是问题,但如果您有文字,那就更烦人了……无论如何,假设您找到了解决文字问题的方法,这里是要使用的代码:
这会将红色覆盖层应用于按钮(颜色代码是完全不透明红色的十六进制代码 - 前两位数字是透明度,然后是 RR GG BB。)。
您可以通过将 btn_default_normal.9.png 文件从您的 sdkfolder/platforms/(android version/data/res/drawable 复制到您自己的项目中,使您的 ImageViews 看起来像普通按钮。然后在您的 ImageView 中使用
android:background="@drawable/btn_normal_default"
和android:src="..."
在按钮内设置图像。