简书链接:代码设置按下和没按下color
文章字数:15,阅读全文大约需要1分钟

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

public void setSelectorColor(TextView radioButton, int normal, int checked) {

int[] colors = new int[]{normal, checked, normal};

int[][] states = new int[3][];

states[0] = new int[]{-android.R.attr.state_pressed};

states[1] = new int[]{android.R.attr.state_pressed};

states[2] = new int[]{};

ColorStateList colorStateList = new ColorStateList(states, colors);

radioButton.setTextColor(colorStateList);

}

public void setSelectorDrawable(TextView cbButton, Drawable drawableNormal, Drawable drawableSelect) {

StateListDrawable drawable = new StateListDrawable();

//选中

drawable.addState(new int[]{android.R.attr.state_pressed}, drawableSelect);

//未选中

drawable.addState(new int[]{-android.R.attr.state_pressed}, drawableNormal);

cbButton.setBackgroundDrawable(drawable);