java.lang.OutOfMemoryError:位图大小超过VM预算-Android

java.lang.OutOfMemoryError:位图大小超过VM预算-Android

我开发了一个在Android上使用大量图片的应用程序。

该应用程序运行一次,在屏幕上填充信息(LayoutsListviewsTextviewsImageViews(等等)和用户读取信息。

没有动画,没有特效或任何东西可以填补记忆。有时抽屉会变。有些是Android资源,有些是保存在sdCard文件夹中的文件。

然后用户退出(onDestroy方法被执行,应用程序由VM驻留在内存中,然后在某个时候用户再次进入。

每次用户进入应用程序时,我都可以看到内存越来越多,直到用户获得java.lang.OutOfMemoryError.

那么,处理许多图像的最佳/正确方法是什么?

我应该把它们放在静态方法中,这样它们就不会一直被加载吗?我是否必须以一种特殊的方式清理版面或版面中使用的图像?


HUWWW
浏览 341回答 3
3回答

牧羊人nacy

要避免此问题,可以使用本机方法。Bitmap.recycle()以前null-INGBitmap对象(或设置另一个值)。例子:public final void setMyBitmap(Bitmap bitmap) {   if (this.myBitmap != null) {     this.myBitmap.recycle();   }   this.myBitmap = bitmap;}接下来你可以改变myBitmapW/O呼叫System.gc()比如:setMyBitmap(null);    setMyBitmap(anotherBitmap);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android