ambrose,
我修改了mapview-overlay-manager库的演示代码,使它可以使用双击手势运行:
package de.android1.overlaymanager.demo;
import android.os.Bundle;
import android.widget.Toast;
import android.graphics.drawable.Drawable;
import android.view.MotionEvent;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapView;
import com.google.android.maps.MapController;
import com.google.android.maps.GeoPoint;
import de.android1.overlaymanager.*;
public class DemoView extends MapActivity {
MapView mapView;
MapController mapController;
OverlayManager overlayManager;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mapView = (MapView) findViewById(R.id.mapview);
mapView.setBuiltInZoomControls(true);
mapController = mapView.getController();
overlayManager = new OverlayManager(getApplication(), mapView);
}
@Override
public void onWindowFocusChanged(boolean b) {
createOverlayWithListener();
}
public void createOverlayWithListener() {
final ManagedOverlay managedOverlay = overlayManager.createOverlay("listenerOverlay", getResources().getDrawable(R.drawable.marker));
for (int i = 0; i < 40; i = i + 3) {
managedOverlay.createItem(GeoHelper.geopoint[i], "Item" + i);
}
managedOverlay.setOnOverlayGestureListener(new ManagedOverlayGestureDetector.OnOverlayGestureListener() {
public boolean onZoom(ZoomEvent zoom, ManagedOverlay overlay) {
return false;
}
public boolean onDoubleTap(MotionEvent e, ManagedOverlay overlay, GeoPoint point, ManagedOverlayItem item) {
Drawable defaultmarker = getResources().getDrawable(R.drawable.marker);
ManagedOverlay managedOverlay = overlayManager.createOverlay(defaultmarker);
managedOverlay.createItem(point);
overlayManager.populate();
Toast.makeText(getApplicationContext(), "You created a Marker!", Toast.LENGTH_LONG).show();
return true;
}
public void onLongPress(MotionEvent arg0, ManagedOverlay arg1) {
}
public void onLongPressFinished(MotionEvent arg0,
ManagedOverlay arg1, GeoPoint arg2, ManagedOverlayItem arg3) {
}
public boolean onScrolled(MotionEvent arg0, MotionEvent arg1,
float arg2, float arg3, ManagedOverlay arg4) {
return false;
}
public boolean onSingleTap(MotionEvent arg0, ManagedOverlay arg1,
GeoPoint arg2, ManagedOverlayItem arg3) {
return false;
}
});
overlayManager.populate();
}
@Override
protected boolean isRouteDisplayed() {
return false;
}
}
希望对您有所帮助。