[英]Picasso - Accessing memory cache only
我正在寫圖庫視圖,並且有兩套圖像; 低質量和高質量。
在圖庫活動中,圖像一次顯示一次。 我先顯示低質量的圖像,然后顯示高質量的圖像(就地)。
低質量圖像已在上一個屏幕中訪問,應該預先緩存在內存中。 我想做的是僅訪問內存緩存-然后移至高質量圖像(無論是否加載了低質量圖像)。
然后照常營業,如果有必要,畢加索可以下載高質量的圖像。
我可以通過一起使用NetworkPolicy.NO_CACHE
, NetworkPolicy.NO_STORE
和NetworkPolicy.OFFLINE
嗎?
您可能現在已經知道了,但是對於其他登陸這里的人-是的,您當然可以。
Picasso.with(context)
.load(smallImageUrl)
.networkPolicy(NetworkPolicy.OFFLINE, NetworkPolicy.NO_CACHE)
.into(imageView, new Callback() {
@Override
public void onSuccess() {
Picasso.with(context).load(largeImageUrl).into(imageView);
}
@Override
public void onError() {
Picasso.with(context).load(largeImageUrl).into(imageView);
}
});
(為簡潔起見,請遵守DRY原則)
因此, NetworkPolicy.OFFLINE
阻止它嘗試從網絡上獲取數據,而NetworkPolicy.NO_CACHE
阻止檢查磁盤緩存(取決於使用的是OkHttp
還是HttpUrlConnection
網絡緩存)。
我還建議您將后者留給畢加索,因為它在感知上通常和內存緩存一樣快。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.