【发布时间】:2011-08-04 22:58:06
【问题描述】:
我正在通过执行以下操作从 http 流创建 Drawable。
HttpClient client = new DefaultHttpClient();
HttpGet get = new HttpGet(url);
HttpResponse response = client.execute(get);
InputStream is = response.getEntity().getContent();
Drawable drawable = Drawable.createFromStream(is, "offers task");
return drawable;
我的问题是 Drawable.createFromStream 分配的内存比它应该分配的多得多。我尝试下载的图像是 13k,但 createfromstream 调用分配了 16mb 缓冲区,导致内存不足错误。
E/AndroidRuntime( 8038): Caused by: java.lang.OutOfMemoryError: bitmap size exceeds VM budget(Heap Size=9066KB, Allocated=7325KB, Bitmap Size=16647KB)
还有其他人遇到过这个问题吗?
【问题讨论】:
-
我也遇到了同样的问题,还没有找到解决办法。
-
我遇到的问题实际上是 htc 迅雷没有垃圾收集任何东西然后最终耗尽内存的问题。即使在所有位图上调用 recycle() 也永远不会从本机堆中释放出来。该问题已通过固件更新解决。
标签: android bitmap out-of-memory