以编程方式将特定颜色设置为ColorStateList

时间:2013-03-13 11:37:10

标签: android textview textcolor android-selector

我从我的问题Add Color "#e3bb87" to StateListDrawable programmatically创建了StateListDrawable,但是TextView.setTextColor没有采用StateListDrawable(奇怪的是它在布局中工作)而是ColorStateList。我读了这个change statelistdrawable text color android button

在ColorStateList的构造函数中,它只接受int

的数组
ColorStateList colorStateList = new ColorStateList(
            new int[][]{
                    new int[]{R.attr.state_pressed},
                    new int[]{R.attr.state_selected},
                    new int[]{-R.attr.state_selected},
            },
            new int[]{
                    Color.GREEN,
                    Color.BLUE,
                    Color.RED});

colors.xml中没有定义颜色,因为我下载了这个颜色属性。我该如何定义?

ColorStateList colorStateList = new ColorStateList(
            new int[][]{
                    new int[]{R.attr.state_pressed}
            },
            **getThisColor**("#e3bb87"));

2 个答案:

答案 0 :(得分:9)

使用此

ColorStateList colorStateList = new ColorStateList(
            new int[][] { new int[] { R.dimen.padding_large } },
            new int[] {Color.parseColor("#e3bb87")});

答案 1 :(得分:1)

您可以使用valueOf()的{​​{1}}方法,该方法返回包含单色的ColorStateList

ColorStateList