如何从URL查看谷歌地图标记上的图像?



在这里,我正在使用这种方法在Google地图标记上查看图像,我面临"图像缓冲区不是数组错误"。

这是我的标记的代码

mGoogleMap.addMarker(new MarkerOptions()
.position(new LatLng(latitude, longitude))
.anchor(0.5f, 0.5f)
.title(title)
.snippet(snippet)
.icon(BitmapDescriptorFactory.fromBitmap(getBitmapFromURL("https://c.ndtvimg.com/2019-10/5cnigl7_virat-kohli-afp_625x300_15_October_19.jpg"))));

这就是我如何使用Glide将图像从URL加载到位图

private Bitmap bitmap;
private Bitmap getBitmapFromURL(String url){
Glide.with(this)
.asBitmap()
.load(url)
.into(new CustomTarget<Bitmap>(25,25) {
@Override
public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition<? super Bitmap> transition) {
bitmap =resource;
}
@Override
public void onLoadCleared(@Nullable Drawable placeholder) {
}
});
return bitmap;
}

这是调试时出错

Unexpected Error: Image buffer is not an array.

如果有其他更好的方法,请告诉我。

也许您使用 Glide 获取的位图在返回位图后完成加载。滑动异步加载图像,但立即返回位图。

请尝试使用下面的代码。

private void getMarkerFromURL(String url){
Glide.with(this)
.asBitmap()
.load(url)
.into(new CustomTarget<Bitmap>(25,25) {
@Override
public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition<? super Bitmap> transition) {
mGoogleMap.addMarker(new MarkerOptions()
.position(new LatLng(latitude, longitude))
.anchor(0.5f, 0.5f)
.title(title)
.snippet(snippet)
.icon(BitmapDescriptorFactory.fromBitmap(resource)));
}
@Override
public void onLoadCleared(@Nullable Drawable placeholder) {
}
});
}

相关内容

  • 没有找到相关文章

最新更新