私はそれが二度以上働くことはありませんでした。私は何もせずオーバーレイにonTouchEvent()を置くオーバーレイを追加しました。これはうまくいった。
public class OsmdroidDemoMap extends Activity {
private MapView mMapView;
private MapController mMapController;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.osm_main);
mMapView = (MapView) findViewById(R.id.mapview);
mMapView.setTileSource(TileSourceFactory.MAPNIK);
mMapView.setBuiltInZoomControls(true);
mMapView.setMultiTouchControls(true);
mMapController = mMapView.getController();
mMapController.setZoom(13);
GeoPoint gPt = new GeoPoint(51500000, -150000);
mMapController.setCenter(gPt);
MapOverlay movl = new MapOverlay(this);
mMapView.getOverlays().add(movl);
}
public class MapOverlay extends org.osmdroid.views.overlay.Overlay {
public MapOverlay(Context ctx) {super(ctx);}
@Override
protected void draw(Canvas c, MapView osmv, boolean shadow) { }
@Override
public boolean onTouchEvent(MotionEvent e, MapView mapView) {
if(e.getAction() == MotionEvent.ACTION_DOWN)
Toast.makeText(OsmdroidDemoMap.this, "Touched", Toast.LENGTH_SHORT).show();
return false;
}
}
}
はい私はそれを試みたが、うまくいかなかった。 – fulupr
Hum。代わりにonTouchEventを試すことができますか?このメソッドは、MapActivityでオーバーライドすることができます –
onTouchEventメソッドをオーバーライドすることはできません。アクティビティがアクティビティを拡張するだけなので、「MainActivityのメソッドonTouchEvent(MotionEvent、MapView)メソッドはスーパークラスメソッドをオーバーライドする必要があります。 – fulupr