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

Android 谷歌地图信息窗口图像视图,android,google-maps,infowindow,Android,Google Maps,Infowindow,我正在尝试在Google Maps v2的信息窗口中加载动态图像。在从内存加载图像和getInfoContents返回要显示的视图之间,我有一个有趣的竞争条件。即使图像在内存中,在位图中,也可能无法在返回视图时完成绘制。我在网上尝试了很多解决方案,但没有一个是100%的 下面是我当前的代码。我重写了GoogleMap.InfoWindowAdapter的getInfoContents方法 有人知道怎么处理吗 @Override public View getInfoContent

我正在尝试在Google Maps v2的信息窗口中加载动态图像。在从内存加载图像和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;
    }

你可以从表格中获得一些想法

也可以考虑使用库,

考虑一下您的图像加载完成后的回调,它将被显示

示例代码:

@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() {}
    }