Android,使用带有Glide库的BitmapPool

时间:2015-01-05 11:23:44

标签: android bitmap android-glide

我在我的应用中使用滑动库来显示位图(来自资源和来自网址)。 它工作得很好,但是因为我在每个活动中显示了很多图像,所以我得到了回忆。 我看到我可以使用BitmapPool中的clearMemory(),但我不知道如何调用它..

有人知道怎么称呼它吗?

由于

1 个答案:

答案 0 :(得分:5)

您可以使用clearMemory()trimMemory()清除Glide的内存缓存和位图池:

Glide.get(context).clearMemory()
// or:
Glide.get(context).trimMemory(ComponentCallbacks2.TRIM_MEMORY_MODERATE);

那就是说,你不应该这样做。要检查两件事:

  1. 您要加载多张大图片吗?如果是这样,您需要确保它们是下采样的,因此请考虑在您正在加载图像的视图中设置一个明确的大小,或者根据您的请求使用Glide的override() API。与像fitCenter这样的转换一起使用将有助于减少每个图像使用的内存。
  2. 您的应用程序中是否存在内存泄漏?虽然Bitmap分配经常抛出实际的OutOfMemoryException,但大多数时候根本原因是应用程序中其他地方的内存泄漏。如果#1无法解决您的问题,请尝试捕获堆转储并检查泄漏。关于如何操作,Android开发者页面有a great tutorial