要动态使用Android的ColorStateList,可以通过代码创建一个ColorStateList对象,并将其应用到View或Drawable对象上。以下是一个示例代码:
// 创建一个ColorStateList对象
int[][] states = new int[][] {
new int[] {android.R.attr.state_pressed},
new int[] {android.R.attr.state_focused},
new int[] {}
};
int[] colors = new int[] {
Color.RED,
Color.GREEN,
Color.BLUE
};
ColorStateList colorStateList = new ColorStateList(states, colors);
// 应用ColorStateList到一个Button上
Button button = findViewById(R.id.button);
button.setTextColor(colorStateList);
在这个例子中,我们首先创建一个包含不同状态和颜色的ColorStateList对象。然后,我们将这个ColorStateList对象应用到一个Button的文本颜色上。根据Button的不同状态(按下、获取焦点、普通状态),文本颜色会自动根据ColorStateList中定义的颜色进行切换。