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 이후에는 사용할 수 없습니다.
집행 결과는 이렇다.

좋은 웹페이지 즐겨찾기