Я получаю из памяти ошибки:Из ошибки памяти - BitmapFactory.decodeStream
Ниже мой код:
public static Bitmap decodeSampledBitmapFromResource(InputStream inputStream,int reqWidth, int reqHeight) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len;
try {
while ((len = inputStream.read(buffer)) > -1) {
baos.write(buffer, 0, len);
}
baos.flush();
InputStream is1 = new ByteArrayInputStream(baos.toByteArray());
InputStream is2 = new ByteArrayInputStream(baos.toByteArray());
// First decode with inJustDecodeBounds=true to check dimensions
final BitmapFactory.Options options = new BitmapFactory.Options();
options.inDither=false;
options.inPurgeable=true;
options.inInputShareable=true;
options.inJustDecodeBounds = true;
// BitmapFactory.decodeResource(res, resId, options);
BitmapFactory.decodeStream(is1,null,options);
// Calculate inSampleSize
options.inSampleSize = calculateInSampleSize(options, reqWidth, reqHeight);
// Decode bitmap with inSampleSize set
options.inJustDecodeBounds = false;
return BitmapFactory.decodeStream(is2,null,options); // error at this line
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
}
я получаю ошибку на этой линии
BitmapFactory.decodeStream(is2,null,options);
I получить эту ошибку Out of memory on a 3250016-byte allocation.
Я видел много сообщений об этом, но все еще не могу найти soluti в этом случае.
какая ошибка вы получаете? вставьте LogCat или StackTrace. –
Почему вы сначала загружаете поток в память? Откуда вы получаете изображение с сервера или из локального файла? – Triode
У меня есть папка с именем data Я получаю imges от этого с помощью classloader, который возвращает мне входной поток, и я передаю его этому методу. – Goofy