两个按钮使用相同的背景图像

时间:2012-11-22 08:20:39

标签: android button

  

可能重复:
  i have two buttons:“btn1,btn2”,the btn2 will randomly change when i change backgound of btn1 alpha

在我的应用程序中,我有两个按钮(btn1和btn2)使用相同的背景图像(pic1),当我改变btn1的背景透明度时.btn2的背景偶尔会改变,并且随机。这很奇怪。任何人都可以帮我找到问题?谢谢。

这是改变OnTouch中背景的代码。当将一个按钮的背景改为半透明时,另一个会影响。

TextView tv = (TextView) v;
int color = tv.getCurrentTextColor();
int r = (color) & 0xFF;
int g = (color >> 8) & 0xFF;
int b = (color >> 16) & 0xFF;
int a = (color >> 24) & 0xFF;
tv.setTextColor(Color.argb(50, r, g, b));

如何避免它们相互影响?

1 个答案:

答案 0 :(得分:0)

您如何设置透明度?

也许我把这个问题理解为错误,但这里有:

android共享中相同图像资源的drawable状态用于优化。这意味着,当您为一个drawable更改alpha时,它会更改共享相同状态(指向同一资源)的所有drawable的alpha。要避免此类行为,可以在drawable上调用.mutate()方法,将此drawable状态与其他状态分开。

因此,如果尝试执行.getBackground()。setAlpha(),则应该执行.getBackground()。mutate()。setAlpha(alpha)。 (注意,每次调用mutate()都不会对性能造成太大影响(微不足道的开销),因为一旦drawable变得可变,mutate()方法就什么都不做了)