我知道有关 Android 位图图片内存不足的讨论很多,但我想知道有没有人能够向我解释一下...
目前在我的应用程序中,我有一个活动,列出了图像缩略图(低质量),当我点击一个图像时,它会打开一个新的活动以全屏查看图像。在我的第二个活动类中,我有以下代码:
我将其放入ImageView中进行显示。这样可以完整地显示我的图像,质量很高。但是,如果我点击返回,然后再次点击查看该图像(并重复这个过程6次)...在第6次打开图像(activity2)时,我会收到一个内存不足错误,指出堆大小=6919KB,分配=3125KB,位图大小=25848KB!为什么位图大小会那么大?我认为可能一直在创建新的实例,所以我决定在第二个活动中添加一个方法,用于当按下返回键时...在这个方法中,我设置了我的位图=null,并执行了System.gc()来清除垃圾回收器,但这没有解决问题。我仍然在第6次点击缩略图以查看全分辨率图像时收到内存不足错误。有人能解释一下吗?谢谢
目前在我的应用程序中,我有一个活动,列出了图像缩略图(低质量),当我点击一个图像时,它会打开一个新的活动以全屏查看图像。在我的第二个活动类中,我有以下代码:
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 1;
bm = BitmapFactory.decodeFile(myImagePath, options);
我将其放入ImageView中进行显示。这样可以完整地显示我的图像,质量很高。但是,如果我点击返回,然后再次点击查看该图像(并重复这个过程6次)...在第6次打开图像(activity2)时,我会收到一个内存不足错误,指出堆大小=6919KB,分配=3125KB,位图大小=25848KB!为什么位图大小会那么大?我认为可能一直在创建新的实例,所以我决定在第二个活动中添加一个方法,用于当按下返回键时...在这个方法中,我设置了我的位图=null,并执行了System.gc()来清除垃圾回收器,但这没有解决问题。我仍然在第6次点击缩略图以查看全分辨率图像时收到内存不足错误。有人能解释一下吗?谢谢