Picasso provides a generic Target interface that you can use to implement your own target image. In particular, you will want to override onBitmapLoaded to fill your token.
Below is a basic implementation.
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) { } }
You would use it like this:
marker = new PicassoMarker(myMarker); Picasso.with(MainActivity.this).load(URL).into(marker);
Note Picasso only supports the weekly Target link passed to into . Therefore, a marker link must exist prior to loading the image to avoid garbage collection of callbacks.
iagreen
source share