美文网首页Android日常
使用ImageLoader 报错ImageLoader Imag

使用ImageLoader 报错ImageLoader Imag

作者: wasdzy111 | 来源:发表于2018-10-29 17:00 被阅读0次

    在使用ImageLoader 加载图片的时候,偶尔出现错误如下:

    ImageLoader Image can't be decoded [file:///..................’_480x800]
    

    突然遇到,一脸懵逼;
    这个错误,不同的手机,还不一定能复现,进过一番查找,原因:

    /**
         * 在Application中初始化参数
         *
         * @param context
         */
        public static void initImageLoader(Context context) {
            ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context)
                    .memoryCacheExtraOptions(480, 800) // 即保存的每个缓存文件的最大长宽
                    //.discCacheExtraOptions(480, 800, CompressFormat.JPEG, 75, null) //设置缓存的详细信息,最好不要设置这个
            …………此次省略…………
    

    发现在初始化的时候设置了memoryCacheExtraOptions 参数 480, 800,数字刚好吻合,再看调用的时候设置了DisplayImageOptions,具体代码如下:

    public static DisplayImageOptions getOptionsHeader() {
            return new DisplayImageOptions.Builder()
                    .cacheInMemory(true)
                    .cacheOnDisk(true)
                    .bitmapConfig(Bitmap.Config.RGB_565)
                    .showImageForEmptyUri(R.mipmap.ic_launcher)//为空的时候
                    .showImageOnFail(R.mipmap.ic_launcher)//错误的时候
                    .showImageOnLoading(R.mipmap.ic_launcher)//载入的时候
                    .build();
        }
    

    此次开启了内存缓存和磁盘缓存,当要加载的图片的尺寸参数大于初始化的参数就会出现如题错误,解决方式:
    1、简单直接:把cacheInMemory、cacheOnDisk都设置为false
    2、改大初始化的参数
    3、显示的时候强制压缩图片尺寸小于初始化,再加载显示

    相关文章

      网友评论

        本文标题:使用ImageLoader 报错ImageLoader Imag

        本文链接:https://www.haomeiwen.com/subject/vqzbtqtx.html