androidpicassoandroid-lru-cache

Is it possible to change the size of the cache Picasso uses for images?


I'm loading images from URLs (http://) with Picasso. Sometimes when i try to "preload" an image using Picasso's fetch() method, the image doesn't get cached. I guess it's because it's size is too big.

Read the answer for this question, but setCache() doesn't seem to be recognized for me, i don't even find it in the Picasso documentation.

Is there any way to change the cache size Picasso uses for bitmaps?


Solution

  • You can do:

    int maxSize = MAX_CACHE_SIZE;
    Picasso picasso = new Picasso.Builder(context)
                                  .memoryCache(new LruCache(maxSize))
                                  .build();
    

    Picasso uses a Cache interface type to manage the cache. They provide the default implementation, LruCache, which has a constructor that accepts the max size in bytes as an argument.

    Seems like the other answer uses the wrong function. It should be memoryCache, not setCache.