Я хочу добавить новое место, когда я долго касаюсь карты, я могу, но проблема в том, когда я добавляю оверлей, я не могу переместить карту. Код ниже.Как контролировать мой предметный оверлей на карте?
public class CustomPinPointOverlay extends ItemizedOverlay<OverlayItem> {
private GeoPoint newMarkerLocation;
public CustomPinPointOverlay(GeoPoint newMarkerLocation,
Drawable defaultMarker) {
super(boundCenterBottom(defaultMarker));
this.newMarkerLocation = newMarkerLocation;
populate();
}
@Override
protected OverlayItem createItem(int i) {
return new OverlayItem(this.newMarkerLocation, null, null);
}
public void draw(android.graphics.Canvas canvas, MapView mapView,
boolean shadow) {
super.draw(canvas, mapView, false);
}
@Override
public int size() {
return 1;
}
}
это мой класс оверлея, который расширяет itemizedoverlay. другая часть кода;
public PMapView(Context context, AttributeSet attrs) {
super(context, attrs);
setOnTouchListener(new OnTouchListener() {
int x, y;
long start, stop;
@Override
public boolean onTouch(View v, MotionEvent e) {
if (e.getAction() == MotionEvent.ACTION_DOWN) {
start = e.getEventTime();
x = (int) e.getX();
y = (int) e.getY();
touchedPoint = map.getProjection().fromPixels(x, y);
}
if (e.getAction() == MotionEvent.ACTION_UP) {
stop = e.getEventTime();
}
if (stop - start > 1000) {
setEnabled(true);
Drawable myMarker = getResources().getDrawable(
R.drawable.yeni_pin);
getOverlays().add(
new CustomPinPointOverlay(touchedPoint, myMarker));
return false;
}
return true;
}
});
}
что с этим кодом?
Я думаю, проблема в том, что мой setOnTouchListener. На мой взгляд, прослушиватель setontouch прослушивает мое прикосновение, пока я не нажму долго. я имею в виду, если я ничего не делаю, кроме stop-start> 1000 мой setontouchlistener продолжает слушать, пока я это не сделаю. Я прав? – sharp