Picasso で URL (http://) から画像を読み込んでいます。Picasso の方法を使用して画像を「プリロード」しようとするとfetch()
、画像がキャッシュされないことがあります。サイズが大きすぎるからだと思います。
この質問の回答を読んでください。しかしsetCache()
、私には認識されていないようです。ピカソのドキュメントにもありません。
Picasso がビットマップに使用するキャッシュ サイズを変更する方法はありますか?
Picasso で URL (http://) から画像を読み込んでいます。Picasso の方法を使用して画像を「プリロード」しようとするとfetch()
、画像がキャッシュされないことがあります。サイズが大きすぎるからだと思います。
この質問の回答を読んでください。しかしsetCache()
、私には認識されていないようです。ピカソのドキュメントにもありません。
Picasso がビットマップに使用するキャッシュ サイズを変更する方法はありますか?
できるよ:
int maxSize = MAX_CACHE_SIZE;
Picasso picasso = new Picasso.Builder(context)
.memoryCache(new LruCache(maxSize))
.build();
Picasso
インターフェイス タイプを使用しCache
てキャッシュを管理します。これらは、デフォルトの実装である を提供しますLruCache
。これには、最大サイズ (バイト単位) を引数として受け入れるコンストラクターがあります。
他の答えが間違った機能を使用しているようです。memoryCache
ではないはずsetCache
です。
この例では、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();