WeV*_*Vie 7 android google-maps picasso
我想使用Picasso来检索Bitmap图像以用作标记图标,但我不知道该怎么做.如果我使用Picasso将图像插入图像视图,我知道我可以使用:
Picasso.with(MainActivity.this).load(URL).into(photo_imageview);
Run Code Online (Sandbox Code Playgroud)
当然,如果我把它传递给它,这将不起作用 .icon()
有没有一种简单的方法来实现这一目标?
感谢有人看看这个!
iag*_*een 28
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) {
}
}
Run Code Online (Sandbox Code Playgroud)
你会像这样使用它 -
marker = new PicassoMarker(myMarker);
Picasso.with(MainActivity.this).load(URL).into(marker);
Run Code Online (Sandbox Code Playgroud)
注意 Picasso只保留一周的Target传递给into.因此,marker引用需要存在,直到加载映像以避免垃圾回收器清理回调.
| 归档时间: |
|
| 查看次数: |
6026 次 |
| 最近记录: |