我正在为视力不好的人构建一个辅助功能应用,用户可以选择自己的颜色组合。出于这个原因,我需要根据他们的喜好以编程方式更改按钮的背景。
我想设置未按下按钮时的背景颜色,以及按下按钮时的不同颜色。但是,我执行setBackgroundColor会覆盖这两个值。
((Button) view).setBackgroundColor(customColor1);
如何在未按下按钮时设置customColor1,为何时设置customColor2?
答案 0 :(得分:0)
尝试这样的事情
Button btn = (Button) findViewById(R.id.button);
StateListDrawable stateListDrawable = new StateListDrawable();
stateListDrawable.addState(new int[] {android.R.attr.state_pressed}, new ColorDrawable(getResources().getColor(R.color.red)));
stateListDrawable.addState(new int[] {-android.R.attr.state_pressed}, new ColorDrawable(getResources().getColor(R.color.green)));
btn.setBackgroundDrawable(stateListDrawable);