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

motionevent ACTION_MOVE, ACTION_UP

0 추천

public boolean onTouch(View v, MotionEvent event) {

if(event.getAction() == MotionEvent.ACTION_DOWN){

 
}
else if(event.getAction() == MotionEvent.ACTION_MOVE){
return false;
}
else if(event.getAction() == MotionEvent.ACTION_UP){
songtext1.setVisibility(View.INVISIBLE);
}
return false;
}
 
 
현재 보여지는 화면은 스크롤 뷰 입니다. 스크롤 뷰를 움직이기 위해 ACTION_MOVE를 넣어줬습니다.
 
하지만 ACTION_UP이 먹어 바로 INVISIBLE처리를 막기위해 return false를 줬습니다
 
그랬더니 ACTION_UP이 안먹네요 움직이지 않고 제자리 터치시 스크롤뷰를 INVISIBLE하고 싶습니다
 
조언좀 부탁드립니다.
 
 
익명사용자 님이 2014년 11월 14일 질문
2014년 11월 14일 수정

1개의 답변

0 추천
스크롤뷰를 움직이기 위해 ACTION_MOVE를 쓴다는게 이해가 안가네요; 뭘 하실려는건지 ㅡㅡ;

여튼 지금은 그냥 제자리 터치시에 스크롤뷰를 invisible 시키면 되는거 맞죠?

 

그럼 일단 ACTION_MOVE에 return 부터 지우시고

PointF firstFinger = null; // 당근 전역변수

if (event.getAction() == MotionEvent.ACTION_DOWN) {

  firstFinger = new PointF(event.getX(), event.getY());

} else if (event.getAction() == MotionEvent.ACTION_MOVE) {

  //ACTION_MOVE시 할 동작

} else if (event.getAction() == MotionEvent.ACTION_UP) {

  PointF oldFirstFinger = firstFinger;

  firstFinger = new PointF(event.getX(), event.getY());

 
  /*
  여기서 ACTION_DOWN시 터치좌표(oldFirstFinger)와 ACITON_UP일때의 터치좌표(firstFinger)를 비교해서 제자리

  터치인지 드래그를 한건지 판단하시면 됩니다.

  그리고 아무리 손가락으로 제자리 터치를 한다해도 좌표는 똑같을 수 없기때문에 제자리터치에대한 범위를

  생각하셔야 할겁니다.

  */
}
익명사용자 님이 2014년 11월 14일 답변
2014년 11월 14일 수정
감사합니다 방금 설명해주신 조언해로 해결되었습니다^^
...