如何修改状态按下按钮的背景?

时间:2014-04-05 14:46:44

标签: android styles views

我正在为视力不好的人构建一个辅助功能应用,用户可以选择自己的颜色组合。出于这个原因,我需要根据他们的喜好以编程方式更改按钮的背景。

我想设置未按下按钮时的背景颜色,以及按下按钮时的不同颜色。但是,我执行setBackgroundColor会覆盖这两个值。

        ((Button) view).setBackgroundColor(customColor1);

如何在未按下按钮时设置customColor1,为何时设置customColor2?

1 个答案:

答案 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);