我试图通过传递图像的url来获取输入流,但是当我有更多请求的图像时,它会说内存不足,有时服务器重新启动。
public InputStream getBitmap(String imagePath, int THUMBSIZE ){
Bitmap ThumbImage = ThumbnailUtils.extractThumbnail(BitmapFactory.decodeFile(imagePath), THUMBSIZE, THUMBSIZE);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ThumbImage.compress(CompressFormat.PNG, 0 , bos);
ThumbImage.recycle();
byte[] bitmapdata = bos.toByteArray();
InputStream bs = new ByteArrayInputStream(bitmapdata);
return bs;
}
这是我使用上面的方法,为什么它会给出内存错误?
String query_file = parameters.get("fname");
String Mime = get_mime(query_file);
String original_path = root.getAbsolutePath()+query_file;
InputStream br = this.getBitmap(original_path, 96);
答案 0 :(得分:1)
答案 1 :(得分:0)
欢迎来到名为
的错误java.lang.OutOfMemoryError: bitmap size exceeds VM budget
当你从网址加载高分辨率的重图像时会发生这种情况。
Android培训课程“Displaying Bitmaps Efficiently”或尝试“Universal Image Loader”,为理解和处理例外提供了一些很好的信息。