在我的应用程序中,我从网址中获取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);
我的问题是:
这只会在模拟器中发生吗?
Morevoer,更重要的是。如果使用drawable insted,我会更有效率吗?在这种情况下,我将我的位图转换为drawable与下面的代码,我将setImageresource。我必须“释放”任何东西吗?
Drawable d = new BitmapDrawable(getResources(),bitmapResult);
答案 0 :(得分:0)
当您从内部存储加载位图时 - 之后回收位图!
这里有很多线程,问题是VM内存不足......