Как я могу использовать Picasso для добавления значка в Marker?

Я хотел бы использовать Picasso для извлечения изображения растрового изображения для использования в качестве значка маркера, но я не уверен, как это сделать. Если я использую Picasso для вставки изображения в изображение, я знаю, что могу использовать:

Picasso.with(MainActivity.this).load(URL).into(photo_imageview); 

Конечно, это не сработает, если передать его на .icon()

Есть ли простой способ достичь этого?

Спасибо, кто смотрит на это!

Picasso предоставляет универсальный Target интерфейс, который вы можете использовать для реализации своего собственного целевого изображения. В частности, вы захотите переопределить onBitmapLoaded для заполнения вашего маркера.

Ниже приводится базовая реализация.

 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) { } } 

Вы бы использовали его так:

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

Примечание. Пикассо содержит только недельную ссылку на Target переданный into . Следовательно, ссылка на marker должна существовать до тех пор, пока изображение не будет загружено, чтобы избежать обратного вызова, очищаемого сборщиком мусора.

Проверьте этот образец кода Google Maps, вы можете найти реализацию InfoWindowAdapter для его достижения: googlemaps / android-samples