OsmMap にタッチ機能を追加したいと思ったとき、タップやスクロールなどが既に使用されていることもわかりました。
そのため、すべてのジェスチャーを開始するには 3 本の指で長押しする必要があるようにしました。ジェスチャは、3 本の指で長押ししてから左右にスライドするか、3 本の指で長押ししてから上に上げます。そうすれば、私のジェスチャーは法線マップのジェスチャーに干渉しませんでした。
私のアプリは、3 本指の長押しを検出した後、タッチ イベントも消費する必要がありました。そうしないと、osm ジェスチャーと私のジェスチャーが競合し、奇妙なスクロールとズームが発生します。
Overlay
これには、次のような特別なコードを追加する必要があります。
@Override
public boolean onTouchEvent(MotionEvent event, MapView mapView)
{
boolean detected = false;
if (myGestureDetector.onTouchEvent(event))
{
detected = true;
}
if (myGestureDetector.isTouchEventActive())
{
Log.d(D_LOG, "TOUCH EVENT ACTIVE DRAIN IT");
detected = true;
}
return detected;
}