마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

버튼을 눌렀다가 버튼 밖에서 손가락을 떼면...

0 추천
onTouch 메소드로

 

ACTION_DOWN일때 버튼이 작아지고

 

ACTION_UP일때 버튼이 커지게 구현했는데

 

 

문제는 버튼을 눌렀다가 손가락을 버튼 밖으로 드레그했을때 버튼이 커지도록 하고 싶은데

버튼이 작아진 상태로 손가락을 뗄 때까지 계속 유지가 되네요.

 

조건을 어떻게 줘야 하는지 도통 모르겠네요. ACTION_OUTSIDE는 호출이 안 되고

 

MotionEvent로 로그 찍어보니 ACTION_DOWN, ACTION_MOVE, ACTION_UP 3개 외에 전혀 호출이 안 일어납니다

 

다른 조건을 조합해 처리해야 하는 것 같은데... 도와주세요 !
익명사용자 (5,930 포인트) 님이 2014년 10월 27일 질문

2개의 답변

0 추천
 
채택된 답변
자답합니다. 해결하긴 했는데...

 

v.getWidth와 getHeight를 변수에 저장한 뒤

 

event.getX, getY랑 비교해서

 

0 < getX < getWidth && ACTION_DOWN일때 작아지고

 

0 > get X || getX < getWidth || ACTION_UP일때 커지게 했네요

 

다른 좋은 방법 있으신 분은 도움을 부탁드려요
익명사용자 (5,930 포인트) 님이 2014년 10월 27일 답변
익명사용자님이 2014년 11월 6일 채택됨
음.. 버튼에 isPressed() 라고 버튼의 눌려진상태를 확인하는 함수가 있는데
아마도 무브이벤트에 넣어두고 조건을 걸면 되지 않을까싶네요 '-'ㅎ
이유를 잘 모르겠는데 pressed, focused 어느 것도 먹히질 않더라고요. 간단하게 메소드 하나로 해결이 되면 좋겠는데...
0 추천

ACTION_DOWN 들어왔을때 

뭐 boolean같은데 true 담고 

ACTION_MOVE 들왔을때는 

boolean이 true면 커지는 애니메이션 줘보세요 

익명사용자 님이 2014년 10월 27일 답변
안 되네요 ㅡㅜ 버튼 영역 계산해서 어떻게 해야할 것 같은데 어렵네요..
...