2017-03-08 3 views
1

Ist es möglich, einen Marker auf einem Bild mit einer beliebigen Bildbibliothek in Android hinzuzufügen?Hinzufügen eines Markers im Bild mit Picasso

Bisher habe ich ein Bild mit Picasso in ImageView geladen und alle Lösungen, die ich gegoogled habe, haben einen Marker in Google Maps hinzugefügt!

Just Like the marker center in the image

+0

sehen: http: //stackoverflow.com/questions/27095469/how-can-i-use-picasso-to-add-icon -to-marker – rafsanahmad007

+0

Es scheint der Code für GoogleMaps zu sein Der Code in der obigen Link auch nicht funktioniert – user1809029

Antwort

0

Picasso bietet einen generisches Ziel Schnittstelle, die Sie verwenden können Ihr eigenes Bild Ziel zu implementieren. Insbesondere möchten Sie onBitmapLoaded überschreiben, um Ihren Marker zu füllen.

Eine grundlegende Implementierung ist unten angegeben.

public class PicassoMarker implements Target { 
    Marker mMarker; 

    PicassoMarker(Marker marker) { 
     mMarker = marker; 
    } 

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

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

    @Override 
    public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from)   { 
     mMarker.setIcon(BitmapDescriptorFactory.fromBitmap(bitmap)); 
    } 

    @Override 
    public void onBitmapFailed(Drawable errorDrawable) { 
    } 

    @Override 
    public void onPrepareLoad(Drawable placeHolderDrawable) { 

    }} 

Sie würde es so verwenden:

marker = new PicassoMarker(myMarker); 
Picasso.with(MainActivity.this).load(URL).into(marker);