【问题标题】:Is it possible to change the size of the cache Picasso uses for images?是否可以更改毕加索用于图像的缓存大小?
【发布时间】:2016-04-13 16:27:27
【问题描述】:

我正在使用 Picasso 从 URL (http://) 加载图像。 有时,当我尝试使用 Picasso 的 fetch() 方法“预加载”图像时,图像不会被缓存。我猜是因为它的尺寸太大了。

阅读this 问题的答案,但我似乎无法识别setCache(),我什至在毕加索文档中都找不到它。

有没有办法改变毕加索用于位图的缓存大小?

【问题讨论】:

    标签: android picasso android-lru-cache


    【解决方案1】:

    你可以这样做:

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

    Picasso 使用Cache 接口类型来管理缓存。它们提供了默认实现LruCache,它有一个constructor,它接受以字节为单位的最大大小作为参数。

    似乎其他答案使用了错误的功能。应该是memoryCache,而不是setCache

    【讨论】:

    • 有2种缓存内存和磁盘。
    • hay @Tushar 我正在使用 picasso 从光盘加载图像,如下所示 picasso.with(context).load(file).into(imageview); ......我怎样才能这样设置内存现金?提前谢谢
    • 在我的滚动条中总是出现颜色“紫色”的错误
    • 嗨,maxSize 是多少?
    【解决方案2】:

    这个例子使用 OkHttp 作为 Picasso 的 http 客户端并设置最大磁盘缓存大小和内存缓存。

     // Size in bytes (10 MB)
     private static final long PICASSO_DISK_CACHE_SIZE = 1024 * 1024 * 10;
    
     // Use OkHttp as downloader
     Downloader downloader = new OkHttpDownloader(getApplicationContext(),
                            PICASSO_DISK_CACHE_SIZE);
    
      // Create memory cache
      Cache memoryCache = new LruCache(maxSize);
    
      mPicasso = new Picasso.Builder(getApplicationContext())
                            .downloader(downloader).memoryCache(memoryCache).build();
    

    【讨论】:

    • hay @dasar 我正在使用毕加索从光盘加载图像,如下所示 picasso.with(context).load(file).into(imageview); ......我怎样才能这样设置内存现金?提前谢谢
    • 是的,它可以工作,但我必须在类中创建一个扩展应用程序的单例。
    • @Error Picasso 本身有静态方法 setSingletonInstance() 正是为了这个目的。您只需要使用此方法构建实例并将其设置为单例,piccaso 将完成剩下的工作。您将像往常一样通过调用 Picasso.with(ctx) 来使用 Picasso,但它会在后台使用单例实例。是的,可能 Application 类是构建 Picasso 实例的好地方,或者你可以在其他地方做,但在你需要它之​​前做。
    • 按照上面的方法,+将mPicasso对象设置为Picasso的单例方法。因此,Picasso.get() 将给出相同的对象。
    猜你喜欢
    • 2013-08-30
    • 2014-04-10
    • 1970-01-01
    • 2015-10-20
    • 2021-02-21
    • 2015-05-07
    • 1970-01-01
    • 2019-09-14
    • 1970-01-01
    相关资源
    最近更新 更多