Программно добавить цвет #e3bb87 в StateListDrawable

Причина, по которой мне нужно сделать это программно, заключается в том, что цвет текста загружается, а не определяется заранее в xml. Я прочитал это Заменить изображения селектора программно

Мне нужно знать только от

StateListDrawable states = new StateListDrawable();
states.addState(new int[] {android.R.attr.state_pressed},
    getResources().getDrawable(R.drawable.pressed));

как превратиться в

states.addState(new int[] {android.R.attr.state_pressed},**theMethodImLookingFor**("#e3bb87"));

забудьте о getResources().getColor(R.color.anycolor) , цвет не определен в xml


person Raymond Chenon    schedule 13.03.2013    source источник
comment
вы можете попробовать использовать text.setTextColor(0xff00ff00);   -  person R KiranKumar    schedule 13.03.2013
comment
Это интересный момент. Я бы предложил убрать явный #e3bb87 из названия, чтобы люди могли легко найти его для любого цвета.   -  person John    schedule 26.09.2015


Ответы (3)


Вы можете использовать это:

states.addState(new int[] {android.R.attr.state_pressed},
    new ColorDrawable(Color.parseColor("#e3bb87")));
person npace    schedule 13.03.2013

Я думаю, вы ищете ColorDrawable

вы можете сделать что-то вроде этого:

StateListDrawable states = new StateListDrawable();
int color = 0xff00ff00;
states.addState(new int[] {android.R.attr.state_pressed},
     new ColorDrawable(color)); 
person Mr.Me    schedule 13.03.2013
comment
спасибо, я могу принять только один ответ. Такой Горец может быть только один - person Raymond Chenon; 13.03.2013

Метод был бы

new ColorDrawable(Color.parseColor("#e3bb87"))
person AnujMathur_07    schedule 13.03.2013