안드로이드 개발 질문/답변
(글 수 45,052)
한 화면에서 2개의 이벤트를 줄려고 합니다. 하나는 멀티 터치와 그냥 일반 스크롤 입니다.
멀티터치와 스크롤은 손가륵의 PointDown으로 해서 1 이면 스크롤 2이면 터치로 하고 있는데...
여기에서 터치를 하고 일정시간 몇소가 지난뒤에 상하로 움직이는 스크롤만 주고 싶은데
어떤걸 쓰서 이벤트를 줘야 하나요? DownTime? longpress?
구체적으로 어떻게 적용이 가능한지 여부를 알고 싶습니다.
2010.10.28 11:33:12
onTouchEvent를 오버라이드 하시고 인자로 전달 받는 motionvevent를 처리 하시면 되겠네요.
event.getPointerCount() 로 몇개의 포인트가 잡히는 지 확인 하신 다음에 멀티터치 인지 아닌지 구분 하고
event.getDownTime() 하고 event.getEventTime() 으로 지연클릭인지 아닌지 구분 하시면 끝이될 듯 합니다.
2010.10.28 18:48:43
어떻게 지연을 구분하는지....
event.getDownTime();은 다운 했을때 시간..
지연클릭을 어떻게 구분이 가능한지요....후.....
final class SimpleGestureListener extends GestureDetector.SimpleOnGestureListener {
Context mContext;
public SimpleGestureListener(Context baseContext) {
// TODO Auto-generated constructor stub
}
@Override
public boolean onDown(MotionEvent ev) {
// TODO Auto-generated method stub
여기에 터치 이벤트 동작음 줌
return true;
}
/*//수치조회
@Override
public void onLongPress(MotionEvent ev) {
}
@Overid
public void onTouchEvent()...{
return mGestureDetector.onTouchEvent(ev);
}
이렇게 하니깐 down했을때 만 인식이 되고 나머지 멀티 터치를 적용한거는 안되더군요...
제가 사용을 못하는 건지...제가 하고 싶은건...
일반 터치입력을 받으면 스크롤 혹은 확대,축소를 해놨습니다. 하지만 여기에서 ....
Y축으로만 스크롤을 할려고 나머진 확대,축소나,X축 스크롤은 그대로 있고...일정한 시간을 주면 다른 MotionEvent Y축 이벤트를 주고 싶은데.....다른 어플에 보면 일정 시간이 지나면 진동 효과가 나면서 다른 모드로 들어가던데...
해보신분이나...-,- 좋은 방법 알고 계신분 도움을 청합니다~