我有严重的内存问题,我期待着回收位图。
但是,我的应用正在做 atm,正在构建一个包含几个位图的画廊(是的,已弃用),然后是几个画廊。
所以在一天结束时,应用程序看起来像(LinearLayout 样式):
*一些网页浏览 *包含 7 张图片的图库。*一些网页浏览 *包含 10 张图片的画廊
等等。
所以我在想……一旦我显示了这些图像,并且它们在屏幕上,这些位图可以回收吗?
有没有办法回收整个画廊组件?
太感谢了。
编辑:
我已经尝试了很多东西。我仍然收到错误java.lang.IllegalArgumentException: bitmap size exceeds 32bits
这是我的实际代码:
BitmapFactory.Options bfOptions=new BitmapFactory.Options();
bfOptions.inDither=false; //Disable Dithering mode
bfOptions.inPurgeable=true; //Tell to gc that whether it needs free memory, the Bitmap can be cleared
bfOptions.inInputShareable=true; //Which kind of reference will be used to recover the Bitmap data after being clear, when it will be used in the future
bfOptions.inTempStorage=new byte[32 * 1024];
bfOptions.inInputShareable=true;
bfOptions.inPreferredConfig = Bitmap.Config.RGB_565;
Bitmap bitmap = BitmapFactory.decodeFile(mUrls.get(position).getPath(), bfOptions);
inflatedImageView.setImageBitmap(Bitmap.createScaledBitmap(bitmap, 120, 120, false));
如您所见,我为位图设置了许多选项,并调整了它的大小并降低了它的质量。仍然发生同样的问题。