Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何无异常地将字节数组解码为位图_Java_Android_Bitmap_Out Of Memory_Bitmapfactory - Fatal编程技术网

Java 如何无异常地将字节数组解码为位图

Java 如何无异常地将字节数组解码为位图,java,android,bitmap,out-of-memory,bitmapfactory,Java,Android,Bitmap,Out Of Memory,Bitmapfactory,我陷入了记忆中。我试图用字节数组加载一个图像,但我所做的一切都不起作用。我猜是位图解码器出错了。这些都是代码: String password = prefs.getString("BookKey", ""); BufferedInputStream buf = new BufferedInputStream(new FileInputStream(file)); buf.read(bytes, 0, bytes.length); buf.

我陷入了记忆中。我试图用字节数组加载一个图像,但我所做的一切都不起作用。我猜是位图解码器出错了。这些都是代码:

       String password = prefs.getString("BookKey", "");
       BufferedInputStream buf = new BufferedInputStream(new FileInputStream(file));
       buf.read(bytes, 0, bytes.length);
       buf.close();
       byte[] bytesdecrpy = decrypt(bytes, password);

       BitmapFactory.Options options = new BitmapFactory.Options();
       options.inDither = true;
       options.inJustDecodeBounds = false;
       options.inPreferredConfig = Bitmap.Config.ARGB_8888;
       options.inTempStorage = new byte[32 * 1024];
       options.inBitmap = BitmapFactory.decodeByteArray(bytesdecrpy, 0,
               bytesdecrpy.length, options);

       bm = Bitmap.createBitmap(options.outWidth,
               options.outHeight, Bitmap.Config.ARGB_8888);

       imageView.setImage(ImageSource.bitmap(bm));
我从设备文件中读取了加密png的字节数组,但当我为位图变量创建位图时,我遇到了问题。我还是有两天跑不好。如果有人能帮我解决这个问题,那就太好了。多谢各位

编辑

我只试过像这样把我的字节数组解码成位图,但问题从未改变,我开始在解码时遇到问题

       bm = BitmapFactory.decodeByteArray(bytesdecrpy, 0,
               bytesdecrpy.length, options);

如果位图太大,这可能导致OOM异常 您可以使用背景线程解码并加载容器中的图像
或者使用

中所述的缓存技术,您可以提供堆栈跟踪、图像大小以及代码运行的位置吗?如果您是有意的话,请提供大约100-200kb和android studio