1. 색상 값을 바꾸는 tint에서 하위 버전에서 적용이 안되는 문제가 발생했다.
2. tint 대신 setColorFilter() 메소드를 사용하면 된다.
3.
/**
* 선택된 라디오 버튼의 DrawableTop 아이콘 색상을 바꾼다.
* @author 임성진
* @since 오후 11:54
**/
private void changeRadioButtonColor(RadioGroup radioGroup){
try {
RadioButton radioButton = null;
int childSize = radioGroup.getChildCount();
int i = 0;
Drawable[] background = null;
int colorResourceId = radioGroup.getResources().getColor(R.color.any);
for (i=0; i<childSize; i++) {
radioButton = (RadioButton) radioGroup.getChildAt(i);
background = radioButton.getCompoundDrawables();
if (radioButton.isChecked()) { // 체크가 되었다면
// 색상을 바꾼다.
/**
* 각각의 배열 위치
* left : 0
* top : 1
* right : 2
* bottom : 4
*/
background[1].setColorFilter(colorResourceId, PorterDuff.Mode.SRC_ATOP);
} else {
// 원래대로 색상을 바꾼다.
background[1].setColorFilter(null);
}
}
}catch (Exception ex) {
}
}