【问题标题】:Image can't be decoded while displaying big image显示大图时图像无法解码
【发布时间】: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


【解决方案1】:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-31
    • 1970-01-01
    相关资源
    最近更新 更多