Caused by: java.lang.IllegalArgumentException: Problem decoding into existing bitmap

这个异常是在复用 inBitmap 的时候出现的


解决办法;

在解析图片 宽、高 等数据的时候不要用 BitmapFactory.decodeStream(is, null, options); 

  BitmapFactory.Options options = new BitmapFactory.Options();
            //先解析图片信息,判断是否可以用复用二级缓存里的内存空间
            options.inJustDecodeBounds = true;
            if (null != is) {
                FileDescriptor fd = ((FileInputStream) is).getFD();
//                BitmapFactory.decodeFileDescriptor(fd, null, options);
                BitmapFactory.decodeStream(is, null, options);//就是这句引起的

            }

可以用 BitmapFactory.decodeFileDescriptor(...); 、decodeFile 、decodeResources 。

关于如何利用 inBitmap 复用内存 ?

 https://mp.weixin.qq.com/s/GMy0xMcxJ_o0Yh0e_eaSIQ 





你可能感兴趣的:(android开发)