2016-06-03 6 views
0

Aus irgendeinem Grund merke ich, dass die Marker, die ich das Symbol für nicht in ihrem lon/lat, wenn ich hinein und heraus zoomen. Wenn ich jedoch Assets verwende, die sich im Projekt befinden, geschieht dies nicht. Weiß jemand warum?Android - Google Karten Marker bewegen sich

Ich lade die Vermögenswerte mit:

Picasso.with(mActivity).load(strUrl).into(currentMarker.getCurrentMarker()); 

--edit -

public class CustomMarker implements Target { 

    Marker mMarker; 
    private boolean doneLoad; 

    public CustomMarker(Marker marker) { 

     mMarker = marker; 
     doneLoad = false; 
    } 

    @Override 
    public int hashCode() { 
     return mMarker.hashCode(); 
    } 

    @Override 
    public boolean equals(Object o) { 
     if(o instanceof CustomMarker) { 
      Marker marker = ((CustomMarker) o).mMarker; 
      return mMarker.equals(marker); 
     } else { 
      return false; 
     } 
    } 

    @Override 
    public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) throws IllegalArgumentException { 

     if (doneLoad == false) { 
      try { 
       mMarker.setIcon(BitmapDescriptorFactory.fromBitmap(bitmap)); 
       doneLoad = true; 
      } catch (IllegalArgumentException e) { 
       e.printStackTrace(); 
      } 
     } 

    } 

    @Override 
    public void onBitmapFailed(Drawable errorDrawable) { 

    } 

    @Override 
    public void onPrepareLoad(Drawable placeHolderDrawable) { 

    } 


    public Marker getmMarker() { 
     return mMarker; 
    } 

    public boolean isDoneLoad() { 
     return doneLoad; 
    } 

    public void setDoneLoad(boolean doneLoad) { 
     this.doneLoad = doneLoad; 
    } 
} 
+0

Könnten Sie die 'target' Implementierung teilen, die Sie verwenden? – antonio

+0

Ich würde sagen, dass das Problem ein falscher Anker des Symbols ist. Könnten Sie 'mMarker.setAnchor (0.5f, 1f);' nach 'setIcon' auf Ihrem' CustomMarker.onBitmapLoaded' hinzufügen? – antonio

+0

@antonio danke! es funktionierte! – Mikerizzo

Antwort

1

Das Problem ist, dass das Symbol nicht richtig verankert ist.

Fügen Sie diese nach setIcon auf Ihrem CustomMarker.onBitmapLoaded:

mMarker.setAnchor(0.5f,1f);