我必须在图像加载后立即做一些事情。我使用SimpleImageLoadingListener来侦听回调方法,但奇怪的是,onLoadingComplete从来没有被调用过,但是onLoadingStarted得到了调用。我已经检查过没有调用图像加载失败或取消方法-这意味着没有错误。有人能指出原因和纠正它的步骤吗?谢谢。
public View getView(int position, View convertView, ViewGroup parent) {
ImageView img = new ImageView(mContext);
img.setLayoutParams(new Gallery.LayoutParams(coverflowWidth, coverflowHeight));
img.setScaleType(ScaleType.CENTER_INSIDE);
img.setTag(position);
ImageLoader.getInstance().displayImage(imageURL, img, options, new SimpleImageLoadingListener()
{
boolean cacheFound;
@Override
public void onLoadingStarted(String url, View view) {
List<String> memCache = MemoryCacheUtil.findCacheKeysForImageUri(url, ImageLoader.getInstance().getMemoryCache());
cacheFound = !memCache.isEmpty();
if (!cacheFound) {
File discCache = DiscCacheUtil.findInCache(url, ImageLoader.getInstance().getDiscCache());
if (discCache != null) {
cacheFound = discCache.exists();
}
}
}
@Override
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
//never gets called
ImageView image = (ImageView) view;
if (cacheFound) {
image.setImageBitmap(loadedImage);
}
else
{
ImageLoader.getInstance().displayImage(imageURL, image, options, null);
}
}
});
return img;
}发布于 2014-03-04 13:55:14
我实际上是在请求从不同的地方加载相同的图像2次。因此,onLoadingComplete被要求提供另一个代码片段,而不是上面提到的代码片段。傻我..。这是个愚蠢的错误。
发布于 2016-06-23 14:52:58
在我的示例中,我将文件路径作为字符串传递,而它要求文件路径的URI作为ImageLoader.getInstance().displayImage(imageURL, img, options, new SimpleImageLoadingListener())的第一个参数;
https://stackoverflow.com/questions/22088538
复制相似问题