I am trying to create a ColorStateList
programatically using this:
ColorStateList stateList = new ColorStateList(states, colors);
But I am not sure what are the two parameters.
As per the documentation:
public ColorStateList (int[][] states, int[] colors)
Added in API level 1
Creates a ColorStateList that returns the specified mapping from states to colors.
Can somebody please explain me how to create this?
What is the meaning of two-dimensional array for states?
See http://developer.android.com/reference/android/R.attr.html#state_above_anchor for a list of available states.
If you want to set colors for disabled, unfocused, unchecked states etc. just negate the states:
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);
Kotlin:
val states = arrayOf(
intArrayOf(android.R.attr.state_enabled), // enabled
intArrayOf(-android.R.attr.state_enabled), // disabled
intArrayOf(-android.R.attr.state_checked), // unchecked
intArrayOf(android.R.attr.state_pressed) // pressed
)
val colors = intArrayOf(
Color.BLACK,
Color.RED,
Color.GREEN,
Color.BLUE
)
val myList = ColorStateList(states, colors)