我必须在加载图像后立即做一些事情。我正在使用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;
}
答案 0 :(得分:0)
我实际上是要求从不同的地方加载2次相同的图像。所以onLoadingComplete
被要求提供另一个代码片段,而不是我上面提到的代码片段。傻傻的......这是一个愚蠢的错误。
答案 1 :(得分:0)
在我的情况下,我将文件路径作为字符串传递,而它要求将filePath的URI作为ImageLoader.getInstance().displayImage(imageURL, img, options, new SimpleImageLoadingListener())
的第一个参数;