Android:更改src alpha并保留背景(将src与颜色混合)

时间:2013-01-05 18:01:39

标签: android imagebutton alpha

我一直在寻找这个问题但是无法找到任何干净的方法。

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

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

onTouchListenersetAlpha(0.5f)更改按钮alpha,但它也会更改背景alpha,这不是我需要的。我想让它看起来更暗,而不是透明。

我已经看到了这个问题:Android Graphics: Changing 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));

1 个答案:

答案 0 :(得分:2)

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