drcarter의 DevLog

안드로에드에서 버튼에 대한 효과를 주는 방법이 있습니다.
ImageButton에 효과를 주는 방법인데... 구글 안드로이드 개발 사이트에서도 명시 되어 있습니다.
그런데 보면서 좀... 혼라?? 스러웠다고 해야 할까요... 그래서 좀 정리를 해볼려고 합니다.

To indicate the different button states (focused, selected, etc.), you can define a different image for each state. E.g., a blue image by default, an orange one for when focused, and a yellow one for when pressed. An easy way to do this is with an XML drawable "selector."

영어는 잘 못하지만.. 대충 내용은 focused, selected, normal 상태의 버튼을 정의하고 싶으면 xml에다 selector라는 것을 사용해서 미리 정의라하는... 그런 내용이죠... 버튼 색상이 나오는데... 그것에 대한 내용은 
이 두 곳에 가시면 설명을 볼 수 있습니다.

그리고는 설명에서는 이렇게 xml을 정의하라고 나옵니다.
      
                
                
            

그리고는 res/drawable/ 폴더에다가 만들어서 사용하라는 내용은 있는데... 저의 짧은 지식으로는 정확하게 이해하기가 힘들더군요... 

예전에는 안드로이드 개발할 때 /res 밑에 drawable 폴더가 1개밖에 없었던 기억이 있었는데... 지금은 기본 프로젝트를 생성해도 /res 밑에 drawable 폴더가 "/res/drawable-hdpi", "/res/drawable-mdpi", "/res/drawable-ldpi" 이렇게 3개가 존재합니다. 구글 document에서는 /res/drawable/ 에다가 xml을 만들라고 합니다...
그럼 그렇게 하면 됩니다... ㅜㅜ/// 정말 말 그대로 하면 되는데... 괜히 /res/drawable-hdpi... mdpi... ldpi... 이런데다가 만들어봐서 했는데 안되더군요 ㅋㅋ

그림에서 보는 것 처럼.. /res/drawable/ 폴더를 만들고 그 곳에 원하는 xml파일을 만듭니다... 예를 들어서 
"play_button.xml"이라는 파을을 만들고 안의 내용을
      
                
                
            

이렇게 안의 내용을 정의 해 두고...
play_button_pressed와 play_button_focused.. 그리고 play_button_normal은... drawable-hdpi, mdpi, ldpi에 paly_button_pressed.png, play_button_focused.png, play_button_noraml.png 로 된 이미지 파일이 있어야 합니다. 

그런 다음에... Layout에서 ImageButton을 만들고 그곳에서 ImageButton의 property의 "Background"에다가
@drawable/play_button 이라고 입력하면 끝납니다.

이 방법때문에... 좀 힘들게 진행했네요... 어떻게 보면...정말 간단한건데...

이젠... 이생각이 듭니다... 그럼 ImageButton마다 일일이 이런 xml을 파일을 만들어 줘야 하는건지... 그럼 하나의 Activity안에 ImageButton이 10개면... 버튼 10개에 대한 xml을 따로 만들어 줘야 하는건지... ㅎㅎ
더 쉽게 하는 방법이 있는지 찾아 봐야 겠습니다... ㅜㅜ///
허접한 설명이였습니다 ㅎ