The reason I need to do this programmatically is that the text color is downloaded and not pre defined in the xml. I read this Replace selector images programmatically
I only need to know from
StateListDrawable states = new StateListDrawable();
states.addState(new int[] {android.R.attr.state_pressed},
getResources().getDrawable(R.drawable.pressed));
how turn into
states.addState(new int[] {android.R.attr.state_pressed},**theMethodImLookingFor**("#e3bb87"));
forget about getResources().getColor(R.color.anycolor)
, the color is not defined in xml
You can use this:
states.addState(new int[] {android.R.attr.state_pressed},
new ColorDrawable(Color.parseColor("#e3bb87")));
I think you are looking for ColorDrawable
you can do something like this:
StateListDrawable states = new StateListDrawable();
int color = 0xff00ff00;
states.addState(new int[] {android.R.attr.state_pressed},
new ColorDrawable(color));
The method would be
new ColorDrawable(Color.parseColor("#e3bb87"))
来源:https://stackoverflow.com/questions/15382854/add-color-e3bb87-to-statelistdrawable-programmatically