android中循环的内置Imageloader

android中循环的内置Imageloader,android,android-asynctask,imageview,universal-image-loader,Android,Android Asynctask,Imageview,Universal Image Loader,我需要循环图像加载谷歌地图标记与图像。因此,我使用自定义标记(将有50多个不同的标记图像)。我正在使用通用图像加载器在图像视图中加载图像。一旦图像加载到图像视图中,我就将该视图转换为标记 我的问题是ImageLoadingListener没有循环。但是如果我放置断点,那么它工作正常 final View marker = ((LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.

我需要循环图像加载谷歌地图标记与图像。因此,我使用自定义标记(将有50多个不同的标记图像)。我正在使用通用图像加载器在图像视图中加载图像。一旦图像加载到图像视图中,我就将该视图转换为标记

我的问题是ImageLoadingListener没有循环。但是如果我放置断点,那么它工作正常

  final View marker = ((LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.custom_marker_layout, null);
            final RoundedImageView imv_Logo = (RoundedImageView) marker.findViewById(R.id.imv_size);
            bitmapArray.clear();
            for (int i = 0; i < list_image_url.size(); i++) {
                imageLoader.displayImage(list_image_url.get(i), imv_Logo, options,
                        new ImageLoadingListener() {
                            @Override
                            public void onLoadingStarted(String arg0, View arg1) {

                            }

                            @Override
                            public void onLoadingFailed(String arg0, View arg1,
                                                        FailReason arg2) {
                                imv_Logo.setImageDrawable(getResources().getDrawable(R.drawable.image_not_found));
                                bitmapArray.add(createDrawableFromView(Establishment.this, marker));
                                if (bitmapArray.size() == list_image_url.size()) {
                                    loadmarker(progressDialog);
                                }

                            }

                            @Override
                            public void onLoadingComplete(String arg0, View arg1,
                                                          Bitmap arg2) {
                                bitmapArray.add(createDrawableFromView(Establishment.this, marker));
                                if (bitmapArray.size() == list_image_url.size()) {
                                    loadmarker(progressDialog);
                                }

                            }

                            @Override
                            public void onLoadingCancelled(String arg0, View arg1) {

                            }
                        });
            }
final View marker=((LayoutInflater)getSystemService(Context.LAYOUT\u INFLATER\u SERVICE)).inflate(R.LAYOUT.custom\u marker\u LAYOUT,null);
最终RoundedImageView imv_徽标=(RoundedImageView)marker.findViewById(R.id.imv_大小);
bitmapArray.clear();
对于(int i=0;i

有人能帮我吗?

我不能保证,但我想问题如下。当您告诉
ImageLoader
将图像加载到
ImageView
中时,它将保留一个内部
HashMap
,以跟踪哪个图像将显示在哪个
ImageView
中。您在这里实际做的是要求
ImageLoader
下载不同的图像,但在相同的
ImageView
中显示它们

imageLoader.displayImage(list_image_url.get(i), imv_Logo,....
所以每次你调用displayImage,它都会更新地图,我猜ImageLoader足够聪明,可以取消以前的下载。所以最后,你只需要下载一张图片

在调试模式下,两次调用displayImage之间将有时间进行下载,因此您将看到多次调用
onLoadingComplete


有意义的是有几个
图像视图

您所说的“ImageLoadingListener没有循环”是什么意思?此语句@Override public void onLoadingComplete(字符串arg0,视图arg1,位图arg2){bitmapArray.add(createDrawableFromView(Establish.this,marker));if(bitmapArray.size()==list_image_url.size()){loadmarker(progressDialog);}没有循环。它只循环了一次