본문 바로가기
Android 개발/Android UI

Android 에서 Button 눌렸을 때 이미지 변경 방법

by Developer88 2016. 12. 30.
반응형

Android에서 버튼작업을 하면,

체크박스가 눌렸을 때나, 버튼을 눌렸을 때, 

버튼의 컬러나 상태등이 변하게 해서 유저가 알 수 있도록 해야 하는데요.


오늘은 버튼의 이미지를 상태에 따라 변경하는 방법에 대해서 정리해보았습니다.


1. 두 가지 상태의 버튼 이미지 준비


우선 변경할 이미지가 필요하겠죠.

저는 이렇게 두가지 이미지를 체크박스를 위해서 준비해놓았습니다.

버튼을 만들고자 하신다면, 보통은 9Patch이미지가 필요할 것 같네요.




2. Selector XML파일 만들기


두 가지 상태의 이미지를 정의하는 Selector XML파일을 

res>drawable에 만들텐데요.

drawable폴더위에서 오른쪽 마우스 버튼을 이용해서 new> Drawable Resource File을 선택합니다.



파일의 이름을 정하고 나서,

Density를 선택한다음 >>버튼을 눌러서 xxhdpi를 선택합니다.

(가지고 계신 이미지에 맞춰서 xxxhdpi도 추가하실수 있습니다.)



파일이 생성되고 나면 아래와 같이

drawable폴더의 xxhdpi폴더에 별모양의 두 이미지를 추가해 줍니다.

파인더에서 파일을 복사하신후 drawable폴더에 붙여넣으면,

붙여넣을 폴더를 선택하라고 나오는데, 이 때  xxhdpi를 선택해주면 됩니다~.



3-1. 체크박스Selector XML파일 만들기


위에서 만든 Selector파일에서 눌리면 변경될 이미지에 관해 XML로 기술해 줍니다.

item태그를 사용하구요. state_checked 를 true와 false로 아래이미지와 같이 설정해 줍니다.




3-2. 버튼 Selector XML파일 만들기


위의 경우는 check로 스타버튼을 누르면,

안에 컬러가 노란색으로 변경되면서,

가득 차있게 되도록 하는 체크박스로 사용하는 건데요,


만약 이것을 버튼처럼 누를때만 

안이 노란색으로 차도록 하려면,

아래 이미지와 같이, state_checked가 아닌, state_pressed로 변경해주면 됩니다.




4-1. layout XML파일에서 Selector 연결


button에 @drawable/btn_star로 selector파일의 위치를 잡아주시면,

즐겨찾기를 on/off할 수 있는 체크박스가 됩니다.



4-2. layout XML파일에서 Selector 연결


그런데, 체크박스가 아니라, 버튼 형태로 하고자 하신다면 아래와 같이 drawable을 잡아주시면 되구요~.



이렇게 해서 상태에 따른 이미지를 변경하는 방법을 정리해 보았습니다~.


728x90

댓글