谷歌地图信息窗口图像视图



我正在谷歌地图v2的InfoWindow中加载一个动态图像。在从内存加载图像和返回要显示的视图的getInfoContents之间,我有一个有趣的竞争条件。即使图像在内存中,在位图中,返回视图时也可能无法完成绘制。我在网上尝试了很多解决方案,但没有一个是100%的。

下面是我当前的代码。我覆盖了GoogleMap.InfoWindowAdapter.的getInfoContents方法

有人知道该怎么处理吗?

    @Override
    public View getInfoContents(final Marker marker) {
        final View view = LayoutInflater.from(context).inflate(R.layout.template_map_info_window, null);
        final ImageView vehicleImage = (ImageView) view.findViewById(R.id.infowindow_image);
        vehicleImage.setImageBitmap(myBitmap);
        return view;
    }

您可以在这里获得一些想法。

此外,你可以考虑使用图书馆毕加索,

考虑实现您的图像加载完成的Callback,它将被显示。

样本代码:

@Override
        public View getInfoContents(Marker marker) {
            ImageView imageView = (ImageView)myContentsView.findViewById(R.id.imgView);
            if (not_first_time_showing_info_window) {
                Picasso.with(MainActivity.this).load(YOU_IMAGE).into(imageView);
            } else { // if it's the first time, load the image with the callback set
                not_first_time_showing_info_window=true;
                Picasso.with(MainActivity.this).load(YOU_IMAGE).into(imageView,new InfoWindowRefresher(marker));
            }
            return myContentsView;
        }
private class InfoWindowRefresher implements Callback {
        private Marker markerToRefresh;
        private InfoWindowRefresher(Marker markerToRefresh) {
            this.markerToRefresh = markerToRefresh;
        }
        @Override
        public void onSuccess() {
            markerToRefresh.showInfoWindow();
        }
        @Override
        public void onError() {}
    }

最新更新