2017-10-16 5 views
2

次のコードがありますが、イメージを意図したとおりにオフラインで読み込むことはできません。それはオンラインでうまく動作しますが、私はオフラインでイメージを読み込む必要もあります。私は外部ストレージの書き込みも許可しています。どんな考えが本当に役に立つでしょう。Picassoがオフラインで使用するために画像をキャッシュに保存していないのはなぜですか?

Picasso.with(getContext()) 
    .load(userInfo.getUserPictureUri()) 
    .networkPolicy(NetworkPolicy.OFFLINE) 
    .resize(80, 80) 
    .error(R.drawable.profile_picture) 
    .centerCrop() 
    .into(imageView_ProfilePictureSide, new Callback() { 
     @Override 
     public void onSuccess() { 
     } 

     @Override 
     public void onError() { 
      // Try again if cache failed 
      Picasso.with(getActivity()) 
       .load(userInfo.getUserPictureUri()) 
       .error(R.drawable.profile_picture) 
       .into(imageView_ProfilePictureSide); 
     } 
    }); 
+0

データがGETリクエストから来ていますか? – Bawa

+0

どのデータですか? okhttp:2.4屋、画像のURLは、あなたは、コンパイル」com.squareup.okhttpを要求 –

+0

https://stackoverflow.com/questions/23978828/how-do-i-use-disk-caching-in-picasso –

答えて

1

アプリモジュールのGradleのビルドファイルにOkHttpを追加:あなたがあなた自身のHTTPリクエストヘッダを行うことができますので、

compile 'com.squareup.picasso:picasso:2.5.2' 
compile 'com.squareup.okhttp:okhttp:2.4.0' 

ピカソはDisk Cache操作にHTTPクライアント要求を使用するには、max-ageとプロパティCache-Controlを持っていますOkhttpを使って、デフォルトのPicassoではなく独自の静的なPicassoインスタンスを作成します。

両方Okhttppicassoライブラリはsquareupチームによって提供されています。

参考文献:How do I use disk caching in Picasso?Github issue about disk cache、二つの質問は、ジェイク・ウォートン@によって回答されている - >Question1Question2

関連する問題