在我的应用程序中,我从url获取4-5个位图,我像使用图库一样使用它们。
如果我切换图像超过6-10次,我会得到这个错误:
09-01 12:08:45.217: E/AndroidRuntime(350): java.lang.OutOfMemoryError: bitmap size exceeds VM budget
09-01 12:08:45.217: E/AndroidRuntime(350): at android.graphics.BitmapFactory.nativeDecodeStream(Native Method)
09-01 12:08:45.217: E/AndroidRuntime(350): at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:459)
09-01 12:08:45.217: E/AndroidRuntime(350): at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:515)这是我的代码:
try {
bitmapResult = BitmapFactory.decodeStream((InputStream)new URL(url[newPage+1]).getContent());
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
v.setImageBitmap(bitmapResult);我的问题是:
这只会在模拟器中发生吗?
越多越重要。如果使用drawable insted会不会更有效率?在这种情况下,我会将我的位图转换为可绘制的,使用下面的代码,然后我将使用setImageresource。我必须“释放”任何东西吗?
Drawable d = new BitmapDrawable(getResources(),bitmapResult);发布于 2012-09-01 20:25:13
当你从你的内存中加载位图时--以后再回收位图!
这里有很多线程都有虚拟机内存不足的问题...
https://stackoverflow.com/questions/12227671
复制相似问题