簡體   English   中英

Picasso-僅訪問內存緩存

[英]Picasso - Accessing memory cache only

我正在寫圖庫視圖,並且有兩套圖像; 低質量和高質量。

在圖庫活動中,圖像一次顯示一次。 我先顯示低質量的圖像,然后顯示高質量的圖像(就地)。

低質量圖像已在上一個屏幕中訪問,應該預先緩存在內存中。 我想做的是僅訪問內存緩存-然后移至高質量圖像(無論是否加載了低質量圖像)。

然后照常營業,如果有必要,畢加索可以下載高質量的圖像。

我可以通過一起使用NetworkPolicy.NO_CACHENetworkPolicy.NO_STORENetworkPolicy.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM