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