2

Picasso で URL (http://) から画像を読み込んでいます。Picasso の方法を使用して画像を「プリロード」しようとするとfetch()、画像がキャッシュされないことがあります。サイズが大きすぎるからだと思います。

この質問の回答を読んでください。しかしsetCache()、私には認識されていないようです。ピカソのドキュメントにもありません。

Picasso がビットマップに使用するキャッシュ サイズを変更する方法はありますか?

4

2 に答える 2

4

できるよ:

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

Picassoインターフェイス タイプを使用しCacheてキャッシュを管理します。これらは、デフォルトの実装である を提供しますLruCache。これには、最大サイズ (バイト単位) を引数として受け入れるコンストラクターがあります。

他の答えが間違った機能を使用しているようです。memoryCacheではないはずsetCacheです。

于 2015-06-08T09:27:17.693 に答える
2

この例では、Picasso の http クライアントとして OkHttp を使用し、最大ディスク キャッシュ サイズとメモリ キャッシュを設定します。

 // 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();
于 2015-06-08T10:54:40.733 に答える