1. ホーム
  2. android

[解決済み] [Solved] ColorStateListをプログラムで作成するには?

2022-04-11 19:14:40

質問

を作成しようとしています。 ColorStateList を使用して、プログラム的に実行します。

ColorStateList stateList = new ColorStateList(states, colors); 

しかし、この2つのパラメータが何なのかがよくわかりません。

ドキュメントにある通りです。

public ColorStateList (int[][] states, int[] colors) 

API レベル 1 で追加

状態から色への指定されたマッピングを返すColorStateListを作成します。

誰かこれを作る方法を教えてください。

状態の2次元配列の意味を教えてください。

どのように解決するのですか?

参照 http://developer.android.com/reference/android/R.attr.html#state_above_anchor は、利用可能な状態の一覧です。

disabled、unfocused、unchecked などの状態に色を設定したい場合は、状態を否定すればよい。

int[][] states = new int[][] {
    new int[] { android.R.attr.state_enabled}, // enabled
    new int[] {-android.R.attr.state_enabled}, // disabled
    new int[] {-android.R.attr.state_checked}, // unchecked
    new int[] { android.R.attr.state_pressed}  // pressed
};

int[] colors = new int[] {
    Color.BLACK,
    Color.RED,
    Color.GREEN,
    Color.BLUE
};

ColorStateList myList = new ColorStateList(states, colors);