본문 바로가기

Android/View

[Android] 안드로이드 체크박스 스타일 바꾸기


알다시피 안드로이드의 기본 체크박스의 형태의 위의 스크린샷과 같은 모양이다. 무난한 모양으로 보기에 나쁘지 않지만 자신만의 스타일로 체크박스를 꾸며보는것도 나쁘지 않다.


디자인 실력이 부족하여 그다지 이쁘게 만들지는 못했지만 위와같은 모양의 체크박스를 만드는 것이 가능하다. 우선 이미지가 필요하다. 최소한 체크되지 않은 상태, 체크된 상태의 이미지 두장은 필요하고 체크되지 않은 상태에서 프레스가 들어왔을때, 체크가 되었을때 프레스가 들어왔을때, non check시 포커스, check시 포커스, enable, disable등 다양한 조건에서의 표현도 가능하다. 여기서는 간단하게 네장의 이미지를 가지고 체크박스를 만들어본다.



위부터 순서대로 체크상태, 체크에서 프레스된 상태, 기본상태, 프레스가 들어온 상태이다. 각각의 상태에 따라 이미지를 적용하기 위해 하나의 drawable xml파일을 만들어준다.




    
    
          
    
    

    
    

    
    

android:state_checked="true/false"

딱 보면 알겠지만 체크박스의 상태가 체크된 상태인지 그렇지 않은 상태인지에 대한 옵션이다.


android:state_window_focused="true/false" android:state_focused="true/false"

체크박스에 포커스가 되어 있는지 아닌지에 대한 옵션.


android:state_pressed="true"

터치등으로 해당 체크박스를 눌렀을시의 상태에 대한 옵션.


android:state_enabled="true/false"

체크가 가능한 상태인지 아닌지에 대한 옵션


                
CheckBox cb01 = (CheckBox) findViewById(R.id.checkBox01);
cb01.setButtonDrawable(R.drawable.checkbox_bg);
layout파일에 지정된 체크박스를 불러온 후

setButtonDrwable(int resId)

메소드를 사용하면 체크박스의 스타일이 바뀌게된다.