我有三个按钮,共享相同的背景图像,我想通过使用Alpha来禁用其中一个按钮。
但是当我使用以下代码时:
button1.getBackground().setAlpha(45);
它正在改变所有三个按钮的背景。但我只需要一个。 我们可以通过Alpha()使用吗?或者我们可以使用的其他一些东西,以便按钮看起来处于禁用模式。
答案 0 :(得分:20)
您可以使用AlphaAnimation
将Alpha设置为任意视图
示例代码
Button btn = (Button) findViewById(R.id.button);
float alpha = 0.45f;
AlphaAnimation alphaUp = new AlphaAnimation(alpha, alpha);
alphaUp.setFillAfter(true);
btn.startAnimation(alphaUp);
答案 1 :(得分:4)
nextBtn.getBackground().setAlpha(100);
或
nextBtn.setAlpha(0.5f);
答案 2 :(得分:1)
Button btn;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn = (Button) findViewById(R.id.main_btn);
Drawable d = getResources().getDrawable(R.drawable.imagen);
d.setAlpha(60);
btn.setBackgroundDrawable(d);
}
答案 3 :(得分:0)
在我的情况下,我将一个按钮设置为alpha75。但所有其他具有相同背景色的按钮也都更改为alpha75。调用mutate()
解决了此问题。
Pavel Dudka'answer非常适合我的情况。
buttonArrivals.getBackground().mutate().setAlpha(180);
buttonDepartures.getBackground().mutate().setAlpha(255);