2

我一直在寻找这个,但无法真正找出任何干净的方法来做到这一点。

我正在开发一个带有一些按钮的应用程序,主要定义如下:

<ImageButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="#000000"
    android:contentDescription="@null"
    android:src="@drawable/btn1" />

有一个onTouchListener用 更改按钮 alpha setAlpha(0.5f),但它也更改了背景 alpha,这不是我需要的。我想让它看起来更暗,而不是透明。

我已经看到了这个问题:Android Graphics: Change the alpha of just an image (not the background)FrameLayout ,并且该解决方案确实有效,但是为我的应用程序中的每个按钮创建一个对我来说并不好。

鉴于背景是纯色,我认为会有更简单的解决方案,例如颜色混合或类似的东西,但真的无法在任何地方找到它。

解决方案

刚刚发现这篇文章:http ://tech.chitgoks.com/2011/04/17/android-change-imagebutton-tint-to-simulate-button-pressed/

解决方案很简单:

button.setColorFilter(Color.argb(150,0,0,0));
4

1 回答 1

2

您可以使用方法获取可绘制的图像getDrawable()并尝试更改其 alpha。

于 2013-01-05T18:08:34.527 回答