Android Image Picasso Square Cache Size

时间:2014-10-30 21:37:24

标签: android image picasso image-loading

我使用Picasso方形库在我的Android应用程序中加载图像。这样做时效果很好:

Picasso.with(getApplicationContext()).load(Properties.IMAGE_URL + i).transform(transformation).centerCrop().fit().into(imgeButton);

我的问题是图像的加载速度太慢,我希望缓存比现在更大。我看到,当只使用一个图像时,缓存正常工作;第一次不缓存图像时,每次调用相同的代码后,图像将从缓存而不是网络中获取。 随着图像数量的增加,似乎缓存太小而图像被替换。可以修改/放大缓存大小吗?

对此的任何帮助将不胜感激。

由于

1 个答案:

答案 0 :(得分:2)

您可以为Picasso指定自己的LRUCache来使用。

 Picasso picasso = new Picasso.Builder(context).memoryCache(
            new LruCache(cacheSize)).build();

我认为默认情况下,Picasso使用可用堆的1/7作为LRU。但是您可以使用设备内存类来计算所需的大小。

int memClass = ((ActivityManager) mApplicationContext
            .getSystemService(Context.ACTIVITY_SERVICE))
            .getLargeMemoryClass();
int cacheSize = 1024 * 1024 * memClass / 4;

祝你好运!