I believe it's because you have the code to add the graphic wrapped inside of the done loading listener of the picture marker symbol. That listener will only fire once per loadAsync() call. You'll want to separate the logic of loading the symbol from creating a new graphic. For example, load the symbol outside of the onSingleTapConfirmed callback and then just use the symbol directly. mMapView.setOnTouchListener(new DefaultMapViewOnTouchListener(getContext(), mMapView) {
@Override
public boolean onSingleTapConfirmed(MotionEvent e) {
android.graphics.Point screenPoint = new android.graphics.Point(
Math.round(e.getX()),
Math.round(e.getY()));
Point mapPoint = mMapView.screenToLocation(screenPoint);
//add a new graphic with the same location as the initial viewpoint
Point pinStarBluePoint = new Point(mapPoint.getX(), mapPoint.getY(), SpatialReferences.getWgs84());
Graphic pinStarBlueGraphic = new Graphic(pinStarBluePoint, pinStarBlueSymbol);
mGraphicsOverlay.getGraphics().add(pinStarBlueGraphic);
return super.onSingleTapConfirmed(e);
}
});
... View more