添加颜色"#e3bb87"以编程方式到StateListDrawable

时间:2013-03-13 10:34:22

标签: android textview android-drawable android-selector

我需要以以编程方式执行此操作的原因是文本颜色已下载,而不是在xml中预先定义。我看了这个 Replace selector images programmatically

我只需要知道

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中定义

3 个答案:

答案 0 :(得分:5)

您可以使用:

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

答案 1 :(得分:1)

我认为您正在寻找ColorDrawable

你可以这样做:

StateListDrawable states = new StateListDrawable();
int color = 0xff00ff00;
states.addState(new int[] {android.R.attr.state_pressed},
     new ColorDrawable(color)); 

答案 2 :(得分:0)

方法是

new ColorDrawable(Color.parseColor("#e3bb87"))