在相机中onActivityResult()
选择图库图像我这样做:
Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), imageUri);
其中imageUri文件大约为7.0MB,因此我创建了较小的位图,我将其分配给相同的位图:
bitmap=Bitmap.createScaledBitmap(bitmap,screenWidth,screenHeight/2, true)
但运行时内存在分配给7.0 MB位图的内存未释放的时候异常增长,GC是不是在收集以前分配的空间?或者还有什么原因?
答案 0 :(得分:0)
试试这个:
bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), imageUri);
Bitmap scaledBitmap = Bitmap.createScaledBitmap(bitmap, screenWidth, screenHeight/2, true);
bitmap.recycle();
bitmap = null;
注意:首先7mb的内存分配是正常的。你得到一个关于7mb的位图。但是在将其缩放到新的位图后,您应该将其回收。然后你可以看到7mb的分配减少了。在此之后,您应该只看到在内存中分配的缩放位图的大小。