Proszę powiedzieć, jak zaimplementować podwójne dotknięcie dla SurfaceView
w systemie Android przy użyciu wykrywacza gestów. Czy ktoś może podać przykład kodu?Jak zaimplementować podwójne dotknięcie widoku powierzchni w Androidzie
7
A
Odpowiedz
15
Można spróbować następujących .. właściwie, przetestowane i działa całkiem dobrze:
1) Extend GestureDetector.SimpleOnGestureListener
i zastąpić to onDoubleTap()
metoda:
class DoubleTapGestureDetector extends GestureDetector.SimpleOnGestureListener {
@Override
public boolean onDoubleTap(MotionEvent e) {
Log.d("TAG", "Double Tap Detected ...");
return true;
}
}
2) instancję GestureDetector
:
final GestureDetector mGesDetect = new GestureDetector(this, new DoubleTapGestureDetector());
3) Ustaw OnTouchListener
na SurfaceView
, przesłonić jego metodę onTouch()
i wywołać onTouchEvent()
na GestureDetector
obiektu:
surfview.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
mGesDetect.onTouchEvent(event);
return true;
}
});
dobre wyjaśnienie –