私はこれに固執しています、私はあらゆる可能性を試しましたが、成功しませんでした。私はテスト用の地図を使って簡単なアプリケーションを作成しました。ユーザーは地図に簡単にタッチして、その場所にマーカーを置くことができます。これは、htcデバイスを除くすべてのデバイスで正常に機能します。mapviewにonTouchイベントを実装する方法がわかりません
これがonTouchの私のコードです
private class MarkerOverlay extends Overlay{
private boolean isMove;
@Override
public boolean onTouchEvent(MotionEvent e, MapView mapView) {
final int x = (int) e.getX();
final int y = (int) e.getY();
if(e.getAction()==1){
if(!isMove){
geopoint = mapView.getProjection().fromPixels(x, y);
OverlayItem overlayItem = new OverlayItem(geopoint, "Title", "Description");
if(mapOverlay.m_overlays.size()>=1){
mapOverlay.clearOverlayAll();
}
mapOverlay.addOverlay(overlayItem);
if(!mapView.getOverlays().contains(mapOverlay))
mapView.getOverlays().add(mapOverlay);
mapView.invalidate();
Toast.makeText(SimpleMapMarkerActivity.this, "in press", Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(SimpleMapMarkerActivity.this, "out press", Toast.LENGTH_SHORT).show();
}
}else if(e.getAction()==MotionEvent.ACTION_DOWN)
isMove = false;
else if(e.getAction()==MotionEvent.ACTION_MOVE)
isMove = true;
return super.onTouchEvent(e, mapView);
}
}