如何通过URL查看Google Maps标记上的图像?

问题描述 投票:0回答:1

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

这是我的标记的代码

 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.

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

android google-maps bitmap google-maps-markers android-glide
1个回答
2
投票

也许您在返回位图后使用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) {
                        }
                    });
        }
© www.soinside.com 2019 - 2024. All rights reserved.