Android의 checkbox 색상을 동적으로 변경
이것은 안드로이드의 체크박스 색상을 동적으로 바꾸는 방법이다.
xml로 바꾸는 방법이 여기저기 소개되어 있어요.
Java 코드로 동적으로 변경할 방법을 찾을 수 없습니다.
이번에는 toguru 단추의 ON<-> OFF에 체크박스의 색을 빨간색<-> 파란색으로 변경한 코드가 설치되었습니다.
main
public class MainActivity extends AppCompatActivity {
private CheckBox checkbox;
private ColorStateList colorState; // 赤
private ColorStateList colorState2;//青
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ToggleButton tButton = (ToggleButton) findViewById(R.id.toggleButton);
tButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener(){
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked) {
checkbox.setButtonTintList(colorState);//赤
}else {
checkbox.setButtonTintList(colorState2);//青
}
}
});
checkbox = (CheckBox) findViewById(R.id.checkBox);
colorState = new ColorStateList(
new int[][] {
new int[]{ android.R.attr.state_checked},
new int[]{ -android.R.attr.state_checked},
},
new int[] {
Color.argb(0xff,0xff,0x00,0x00),
Color.argb(0xff,0xff,0x00,0x00),
}
);
colorState2 = new ColorStateList(
new int[][] {
new int[]{ android.R.attr.state_checked },
new int[]{ -android.R.attr.state_checked },
},
new int[] {
Color.argb(0xff,0x00,0x00,0xff),
Color.argb(0xff,0x00,0x00,0xff),
}
);
}
ColorState List에서 checkbox에서 지정할 색상의 색상 상태 만들기setButon TintList에서 checkbox를 설정합니다.
다만, setButon TintList는 API Level 21에서 시작하므로 Lolipop 이후에는 사용할 수 없습니다.
집행 결과는 이렇다.
Reference
이 문제에 관하여(Android의 checkbox 색상을 동적으로 변경), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/SIDIAN/items/f6e42743494aa6ce8bb2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)