【发布时间】:2013-09-27 08:48:42
【问题描述】:
我无法在Universal Image Loader 中加载大图。
我的代码
ImageLoader imageLoader = null;
try {
File cacheDir = StorageUtils.getOwnCacheDirectory(this, Environment
.getExternalStorageDirectory().getAbsolutePath());
DisplayImageOptions defaultOptions = new DisplayImageOptions.Builder()
.cacheOnDisc().imageScaleType(ImageScaleType.EXACTLY)
.bitmapConfig(Bitmap.Config.RGB_565).build();
ImageLoaderConfiguration.Builder builder = new ImageLoaderConfiguration.Builder(
this).defaultDisplayImageOptions(defaultOptions)
.discCache(new UnlimitedDiscCache(cacheDir))
.memoryCache(new WeakMemoryCache());
ImageLoaderConfiguration config = builder.build();
imageLoader = ImageLoader.getInstance();
imageLoader.init(config);
} catch (Exception e) {
e.printStackTrace();
}
ImageView imageView1 = (ImageView) findViewById(R.id.imageView1);
imageLoader
.displayImage(
"http://www.kenrockwell.com/canon/lenses/images/100mm/IMG_1906.JPG",
imageView1, new ImageLoadingListener() {
@Override
public void onLoadingStarted(String arg0, View arg1) {
// TODO Auto-generated method stub
}
@Override
public void onLoadingFailed(String arg0, View arg1,
FailReason arg2) {
Log.e("", "" + arg2);
}
@Override
public void onLoadingComplete(String arg0,
View arg1, Bitmap arg2) {
}
@Override
public void onLoadingCancelled(String arg0,
View arg1) {
}
});
我遇到这样的错误
09-27 14:13:00.982: E/ImageLoader(31251): Image can't be decoded [http://www.kenrockwell.com/canon/lenses/images/100mm/IMG_1906.JPG_1080x1920]
我能够加载其他图像,只有这个图像无法加载。可能它的大小超过 5 MB。那么如何使用 UIL 加载大图像。有没有其他方法可以解决这个问题?
【问题讨论】:
-
还有日志吗?一个堆栈跟踪,可能是?
-
http://www.kenrockwell.com/canon/lenses/images/100mm/IMG_1906.JPG_1080x1920不存在,也不是您在代码中调用的内容。你确定这是你使用的代码吗? -
还有,这张图很大,很容易造成内存不足
-
我认为即使您可以下载它也可能会引发内存不足错误
-
@MuhammadBabar 如果您了解 UIL。当 UIL 抛出异常时,它只在路径末尾打印尺寸。
标签: android android-image universal-image-loader