无需缓存即可将Bitmap解码为ImageView,从而防止内存泄漏

时间:2014-05-28 13:30:30

标签: android memory-leaks bitmap

所以我在http://developer.android.com/training/displaying-bitmaps/index.html上阅读了有关Bitmap的所有教程,看起来他们在非常特定的级别上管理它们的课程缓存。我也知道有像通用图像加载器这样的库可以为您解决这个问题。

但是,让我们简单一点,如果我只想从文件中解码单个Bitmap并将其放在ImageView上,该怎么办?据我所知,为了防止内存泄漏,你不应该保留对Bitmap的引用,那么如何实现呢?假设位图的文件路径存储在以下字符串中:imagePath

2 个答案:

答案 0 :(得分:1)

只要不再需要Bitmap(例如,当活动被销毁时)清理,就可以保留对Bitmap对象的引用。

确保您没有任何与Bitmap相关的泄漏泄漏:

imageView.setImageBitmap(null);
bitmap.recycle();    // frees the Bitmap instance
bitmap = null;

答案 1 :(得分:0)

Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath()); //File file
iv.setImageBitmap(bitmap); // ImageView iv