gpt4 book ai didi

android - 如何使用 Picasso 将图标添加到 Marker?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:07:26 24 4
gpt4 key购买 nike

我想使用 Picasso 检索位图图像以用作标记图标,但我不确定如何操作。如果我使用 Picasso 将图像插入 ImageView ,我知道我可以使用:

 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);

注意 Picasso 仅保留对传递给intoTarget 的一周引用。因此,marker 引用需要在图像加载之前一直存在,以避免回调被垃圾收集器清除。

关于android - 如何使用 Picasso 将图标添加到 Marker?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27095469/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com