티스토리 뷰

사전에 밝혀두는데 저는 소스를 따로 첨부하지 않을 것입니다.
소스를 한번 쳐 본다는 것에 의의가 있다고 생각합니다.
복사 - 붙여넣기로 만들었다면 그 때는 편하겠지만 장기적으로 생각하면 결코 좋지 않습니다.


버튼은 눌렸을 때와 눌려지지 않았을 때의 구별이 되어야 합니다.
그러므로 둘의 눌렸을 때와 눌리지 않았을 때의 이미지를 다르게 하여야 하죠.
여기서 좋은 것이 있는데 바로 Selector입니다.

위 사진은 안드로이드 디벨로퍼 페이지 입니다.
(http://developer.android.com/reference/android/widget/ImageButton.html)
android ImageButton라고 구글에 검색하니 바로 나오더라고요.
본문을 읽어보시면 아시겠지만 XML 파일 하나 만들어서 저 내용 써 넣으랍니다.
 

참고로 저 selector.xml은 레이아웃이나 밸류 폴더가 아니라 drawable 폴더 안에 넣어야합니다.
버튼의 눌렸을 때와 눌려지지 않았을 때의 이미지는 drawable 폴더 안에 반드시 존재해야 합니다.

제 버튼의 이미지는 이렇습니다.

help1 이미지

help2 이미지

보시면 아시겠지만 help1이미지가 기본 이미지이고
help2 이미지가 터치됬을 때 바뀌는 이미지입니다.

selector.xml파일의 내용은 이렇게 써 넣으시면 됩니다.
보시면 속성이 state_window_focused, state_pressed이 있는데
state_window_pressed : 눌러졌는가,
state_window_focused : 위젯에 포커스가 와 있는가,
그러므로 포커스가 와 있다면 출력되는 이미지는 drawable\help1
눌려진 상태라면 drawable\help2
아무 상태가 아니라면 drawable\help1 이미지를 출력하도록 하겠네요.

이건 레이아웃 XML 파일 내용입니다.
보시면 android:src 속성에 selector.xml의 주소를 넣어준 것을 알 수 있습니다.  이게 무슨 뜻이냐 하면 android:src 속성


에는 쓸 그림파일의 주소를 적어주는데요.
selector.xml을 쓸 그림파일의 주소로 사용하겠다는 뜻입니다.
그런데 selector.xml에는 버튼이 눌려졌을때와 눌려지지 않았을 때의 그림파일 주소를 지정해놓은 상황입니다.
그러므로 이미지버튼의 그림을 눌려졌을 때와 눌려지지 않았을 때를 다르게 연출할 수 있게 되는 것입니다. 
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday