我有几个按钮。我希望当我点击任何按钮时,它的颜色应该改变,其他按钮应该保持不变。下次点击其他按钮的时候,它的颜色应该改变,其他按钮保持不变(或者通过defalut状态),等等。 这是我的代码
switch(v.getId())
{
case R.id.bt1:
bt11.getBackground().setColorFilter(Color.CYAN,PorterDuff.Mode.Multiple);
bt12.setBackgroundResource(android.R.drawable.btn_default);
break;
case R.id.bt2:
bt12.getBackground().setColorFilter(Color.CYAN,PorterDuff.Mode.Multiple);
bt11.setBackgroundResource(android.R.drawable.btn_default);
break;
}
但是当我第一次按下按钮bt11时它的颜色变成了CYAN,当我按下bt12然后它的颜色变成CYAN并且第一个按钮即bt11进入默认状态但下次一切都出错了两个按钮都保留在CYAN颜色
答案 0 :(得分:1)
试
button.setBackgroundColor( android.graphics.Color.GREEN);
答案 1 :(得分:0)
试试这个 您的代码中的问题是您在按钮的bg属性上放置了一个颜色过滤器,即使您更改了bg而不是在imgand上设置过滤器,它仍将保留为bg fr btn
switch(v.getId())
{
case R.id.bt1:
Drawable d=b11.getBackground();
d.setColorFilter(Color.CYAN,PorterDuff.Mode.MULTIPLY);
b11.setBackgroundDrawable(d);
b12.setBackgroundResource(android.R.drawable.btn_default);
break;
case R.id.bt2:
//b2.getBackground().setColorFilter(Color.CYAN,PorterDuff.Mode.MULTIPLY);
Drawable dd=b12.getBackground();
dd.setColorFilter(Color.CYAN,PorterDuff.Mode.MULTIPLY);
b12.setBackgroundDrawable(dd);
b11.setBackgroundResource(android.R.drawable.btn_default);
break;
}
答案 2 :(得分:0)
“下次一切都出错了,两个按钮都保留在CYAN颜色中”,因为当你点击其他按钮时,你只是改变了其他按钮背景,但颜色保持不变我猜。你也必须改变背景颜色。
switch(v.getId())
{
case R.id.bt1:
bt11.getBackground().setColorFilter(Color.CYAN,PorterDuff.Mode.Multiple);
bt12.setBackgroundResource(android.R.drawable.btn_default);
bt12.setBackgroundColor(Black);
break;
case R.id.bt2:
bt12.getBackground().setColorFilter(Color.CYAN,PorterDuff.Mode.Multiple);
bt11.setBackgroundResource(android.R.drawable.btn_default);
bt11.setBackgroundColor(Black);
break;
}