如何使带有自定义背景图像的按钮在Android中显示点击动画

新手上路,请多包涵

对于在 Android 中使用自定义背景图像的按钮,如何使按钮显示它已被单击(通过将其设置为向下/进行一些更改)。我不想包含更多图像并将不同的图像设置为不同的状态,如 google hello views 示例中所示。谢谢。

原文由 Pritam 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 614
2 个回答

使用 ColorFilter 方法可以只处理一个图像文件。但是,ColorFilter 希望与 ImageViews 而不是 Buttons 一起工作,因此您必须将按钮转换为 ImageViews。如果您无论如何都使用图像作为按钮,这不是问题,但如果您有文字,那就更烦人了……无论如何,假设您找到了解决文字问题的方法,这里是要使用的代码:

 ImageView button = (ImageView) findViewById(R.id.button);
button.setColorFilter(0xFFFF0000, PorterDuff.Mode.MULTIPLY);

这会将红色覆盖层应用于按钮(颜色代码是完全不透明红色的十六进制代码 - 前两位数字是透明度,然后是 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="..." 在按钮内设置图像。

原文由 Steve Haley 发布,翻译遵循 CC BY-SA 2.5 许可协议

你必须使用两个图像来做到这一点。

  1. 按钮_正常
  2. 按钮按下

然后在 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 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题