首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >位图大小超过虚拟机预算与使用drawables android

位图大小超过虚拟机预算与使用drawables android
EN

Stack Overflow用户
提问于 2012-09-01 20:23:19
回答 1查看 314关注 0票数 0

在我的应用程序中,我从url获取4-5个位图,我像使用图库一样使用它们。

如果我切换图像超过6-10次,我会得到这个错误:

代码语言:javascript
复制
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)

这是我的代码:

代码语言:javascript
复制
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。我必须“释放”任何东西吗?

代码语言:javascript
复制
Drawable d = new BitmapDrawable(getResources(),bitmapResult);
EN

回答 1

Stack Overflow用户

发布于 2012-09-01 20:25:13

当你从你的内存中加载位图时--以后再回收位图!

这里有很多线程都有虚拟机内存不足的问题...

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12227671

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档