毕加索没有有效地加载滚动图像?

Picasso isn't loading scrolled images efficiently?

我正在使用一个通过 picasso 加载一堆图像的 gridview。我已经实现了 viewholders,但我不确定我还能用适配器或 imageview 做些什么来让它加载得更好。我已经将问题隔离到通过互联网连接加载图像,因为当我在本地加载图像时滚动很好。

使用 picasso 时,gridview 滚动非常有问题,并且滚动在不应该的情况下不断跳来跳去。这个问题的解决方案是什么?

首先,我建议您将 RecyclerViewGridLayoutManagerStaggeredGridLayoutManager 一起使用。它必须更有效并且视图本身包含更少的错误。

接下来,将 OkHttp 与 Picasso 结合使用。它是更稳定、更强大和一致的 http 客户端。我认为对您来说最重要的是配置 memory/file 缓存。

// Create a cache using an appropriate portion of the available RAM
Cache memoryCache = new LruCache(getApplicationContext());

// Use OkHttp as downloader
Downloader downloader = new OkHttpDownloader(getApplicationContext(),
                    PICASSO_DISK_CACHE_SIZE);

mPicasso = new Picasso.Builder(getApplicationContext())
              .downloader(downloader).memoryCache(memoryCache).build();

加载速度还取决于网络状况和图像大小。