[안드로이드 공부]/프리퍼런스

Preference item 클릭 효과 만들기

코코모아 2015. 10. 10. 15:45

아래는 코모스튜디오가 직접 만든 무료 앱이에요
(한 번만 봐주세요 ^^)

01

02

03

정각알림 만들기(말하는시계)

말하는 시계 (취침, 자전거) 

말하는 타이머 음성 스톱워치 

안드로이드 리스트의 경우에는 간단히 list.setSelector를 해주면 아이템 클릭 효과를 줄 수 있다. 뿐만 아니라 Preference에서도 비슷하게 사용 할 수 있는데, getListView를 한 뒤 리스트처럼 사용하면 아이템 클릭시 효과를 얻을 수 있다. 

하지만 언제나 어려운 문제는 발생하는 법. 만약 Preference를 오버라이드(Override)한 다면 어떻게 처리 해야 할까? 오버라이드를 했으니 메인 프리퍼런스 액티비티가 어찌 손을 쓸 수도 없고... 오버라이드한 프리퍼런스에서 getListView를 하기도 그렇고... 그럼 도데체 이 리스트 아이템을 어떻게 가져 올 거냐?

여기 저기 검색을 해봐도 오버라이드 되지 않은 프리퍼런스의 아이템에 대한 얘기 밖에 없다. 그럼... 어차피 새로 만드는 셈 치는 것이 오버라이드인데... 그럼 새로 만들자라는 생각으로 아래와 같이 만들었다. 오버라이드한 프리퍼런스의 OnCreateView에서 아래와 같은 작업을 하면 된다.


1. 뷰 또는 버튼 등에 OnClickListener가 아니라 OnTouchListener를 더 달아 준다.

2. 손으로 눌렀을 때 효과를 보여주고

3. 손을 때어내면 효과를 지운다.

4. 만약 이전 효과를 기억 하지 못한다면  

   Drawable initialDrawable = mView.getBackground(); 

   이렇게 가져 온 뒤 다시 넣어 주면 된다.


안드로이드에서 프리퍼런스는 다른 기본 적인 아이템들 보다 어렵다. 오버라이드도 어렵다. 하지만, 찬찬히 뜯어 보면 그 나물에 그 밥이다.

모든 게시물은 코모스튜디오의 소유이며, 무단 복제 수정은 절대 불가입니다.
퍼가실 경우 댓글과 블로그 주소를 남기고 해당 게시물에 출처를 명확히 밝히세요.