6

Add Color "#e3bb87" to StateListDrawable programmaticallyという質問から StateListDrawable を作成しましたが、 TextView.setTextColor は StateListDrawable (レイアウトで機能するのは奇妙です) ではなく、 ColorStateList を使用します。この変更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"));
4

2 に答える 2

11

これを使って

ColorStateList colorStateList = new ColorStateList(
            new int[][] { new int[] { R.dimen.padding_large } },
            new int[] {Color.parseColor("#e3bb87")});
于 2013-03-13T11:47:04.180 に答える
5

単一の色を含むを返すのvalueOf()メソッドを使用できます。ColorStateListColorStateList

ColorStateList.valueOf(Color.parseColor("#e3bb87"))
于 2020-08-07T08:34:15.757 に答える