android中循环的内置Imageloader
我需要循环图像加载谷歌地图标记与图像。因此,我使用自定义标记(将有50多个不同的标记图像)。我正在使用通用图像加载器在图像视图中加载图像。一旦图像加载到图像视图中,我就将该视图转换为标记 我的问题是ImageLoadingListener没有循环。但是如果我放置断点,那么它工作正常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.
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);}没有循环。它只循环了一次