Android Picasso配置LruCache大小

我在我的项目中使用趋势毕加索,但我已经倾倒堆,它看起来像这样。 现在昨天,它为我在毕加索使用的LruCache提供了48M。

我怎么能指定它的大小?

注意:我加载的图像显然很大。

如果有人提出了fit()centerCrop() ,我会读到这些函数会减少图像大小,对吗? 但有时我必须在全视图中在ListView中显示小图像。

现在,这些function是否会缓存缩小的图像?

在此处输入图像描述

默认情况下,Picasso使用可用堆的1/7作为LRU。 这是一个“快乐”的部分,在所有设备上运行得最好。

您可以通过将自定义实例传递给Picasso.Builder来配置内存缓存的大小。 它可以是LruCache一个实例,它采用最大大小或任何其他Cache实例。

 Picasso p = new Picasso.Builder(context) .memoryCache(new LruCache(24000)) .build(); 

但是,在缩小此缓存大小之前,请记住,将Bitmap实例保留在RAM中可以立即显示它们。 未使用的RAM浪费了RAM。 内存缓存应尽可能多地使用RAM,而不会导致OOM(显然)或不必要的GC释放空间。

下面的代码将把毕加索缓存大小增加到250 MB。

 Picasso picasso = new Picasso.Builder(this).downloader(new OkHttpDownloader(getCacheDir(), 250000000)).build(); Picasso.setSingletonInstance(picasso);