web-dev-qa-db-ja.com

Android-picassoを使用して、キャッシュに保存せずに画像をロードします

Picassoを使用してURLからプレースホルダーに画像をロードしますが、その画像をキャッシュに保存しません。つまり、画像をネットから直接ディスクにダウンロードし、必要に応じてディスクからロードします。メモリポリシーを指定できるRequestCreatorというクラスがあることを理解しています-picasso/requestcreatorを使用してこのようなことを行う例はありますか?

だから..のようなもの:

RequestCreator requestCreator = new RequestCreator();
requestCreator.memoryPolicy(MemoryPolicy.NO_CACHE);
....

と合併:

Picasso.with(context).load(someurl).fit().placeholder(someplaceholder).into(sometarget)..
23
Jon

Picassoは、PicassoビルダーのskipMemoryCache()によってこれをサポートします。以下に例を示します。

Picasso.with(context).load(imageUrl)
                .error(R.drawable.error)
                .placeholder(R.drawable.placeholder)
                .skipMemoryCache()
                .into(imageView);

新しいAPIでは、次のように使用して、検索とキャッシュへの保存をスキップする必要があります。

Picasso.with(context).load(imageUrl)
            .error(R.drawable.error)
            .placeholder(R.drawable.placeholder)
            .memoryPolicy(MemoryPolicy.NO_CACHE, MemoryPolicy.NO_STORE)
            .into(imageView);

NO_CACHE

要求を処理するときにメモリキャッシュのルックアップをスキップします。

NO_STORE

最終結果のメモリキャッシュへの保存をスキップします。キャッシュから他のビットマップを追い出すことを避けるために、1回限りの要求に役立ちます。

54
MrEngineer13

_picasso:2.71828_以上のバージョンの場合、ディスクキャッシュnetworkPolicy(NetworkPolicy.NO_CACHE)の使用をスキップするには、次を使用します。

_  Picasso.get()
            .load(camera_url)
            .placeholder(R.drawable.loader2)
            .networkPolicy(NetworkPolicy.NO_CACHE, NetworkPolicy.NO_STORE)
            .into(img_cam_view);
_
1
Sagar Jethva