2017-09-26 32 views
0

은 화면을 확대/축소 할 때 손가락을 움직여 다른 작업을 수행 할 수 있습니다. 내 앱이 축척 이벤트 및 터치 이벤트를 수신 대기합니다.내 앱 사용자의 Android onScale onTouchEvent

내 문제는 두 손가락이 동시에 화면을 터치하지 않기 때문에 화면을 터치 한 첫 손가락이 스케일 대신 터치 이벤트를 호출 할 수 있도록하는 것입니다 (두 번째 손가락이 전화를 받았을 때 잘못된 것입니다. 함수가 이전에 호출되었습니다).

사용자가 손가락을 튀길 때 줌 후 동일한 문제가 있습니다.

누군가 무엇을 해야할지 알고 있나요? 감사합니다.

답변

0

터치 이벤트는 이미 경험 한 것보다 낮은 수준입니다. 그것을 처리하는 ScaleGestureDetector을 사용하십시오. official doc 찍은 간단한 예 드래그와 같은 다른 더 복잡한 이벤트 표기

public MyCustomView(Context mContext){ 
    ... 
    // View code goes here 
    ... 
    scaleDetector = new ScaleGestureDetector(context, new ScaleListener()); 
} 

@Override 
public boolean onTouchEvent(MotionEvent ev) { 
    // Let the ScaleGestureDetector inspect all events. 
    if(!scaleDetector.onTouchEvent(ev)) { 
     // detect the move event here 
    } 
    return true; 
} 

같은 검출 패턴과 같을 수있다.

+0

줌을 감지하기 위해 scalegesturedetector를 사용하지만 onTouchEvent 함수에서도 움직임을 감지해야했습니다. 줌이 감지되면 움직임을 감지합니다. 내 문제 야. – Nos

+0

손가락을 움직이고 핀치 할 때 줌을하면 뷰가 번역되어야했습니다. 내 문제는 핀치가 완료되면 시스템이 마지막 손가락 위치를 이동 이벤트로 유지하는 것입니다. – Nos

+0

@Nos'scaleDetector.onTouchEvent()'는 이벤트가 처리되었는지 여부를 나타내는 부울을 반환합니다. 이것이 두 탐지 방법을 상호 배제 할 수있는 방법입니다. –