我陷入了记忆中。我正在尝试使用字节数组加载图像但是我做过的任何事都行不通。我猜我得到位图解码器错误。这些都是代码:
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,但我遇到问题,当我为位图变量创建位图时。我仍然无法运行2天。如果有人能帮助我解决这个问题,那就太好了。谢谢。
修改
我尝试过只将我的字节数组解码为这样的位图,但问题从未改变我已经开始在解码中遇到问题
bm = BitmapFactory.decodeByteArray(bytesdecrpy, 0,
bytesdecrpy.length, options);
答案 0 :(得分:0)
如果位图太大,这可能会导致OOM异常 您可以使用后台线程来解码并加载容器中的图像 或使用https://developer.android.com/training/displaying-bitmaps/index.html
中所述的缓存技术