如何在Picasso中使用磁盤緩存?我正在使用畢加索(Picasso)在我的Android應用程序中顯示圖像:/**
* load image.This is within a activity so this context is activity
*/public void loadImage (){
Picasso picasso = Picasso.with(this);
picasso.setDebugging(true);
picasso.load(quiz.getImageUrl()).into(quizImage);}我已經啟用了調試,它總是顯示紅色和綠色,但從不顯示黃色現在,如果我加載相同的圖像,下次,互聯網是不可用的,圖像是不加載的。問題:它沒有本地磁盤緩存嗎?如何啟用磁盤緩存,因為我將多次使用相同的映像。是否需要向Android清單文件添加一些磁盤權限?
3 回答

臨摹微笑
TA貢獻1982條經驗 獲得超2個贊
compile 'com.squareup.picasso:picasso:2.5.2'compile 'com.squareup.okhttp3:okhttp:3.10.0'compile 'com.jakewharton.picasso:picasso2-okhttp3-downloader:1.1.0'
Application
import android.app.Application;import com.jakewharton.picasso.OkHttp3Downloader;import com.squareup.picasso.Picasso;public class Global extends Application { @Override public void onCreate() { super.onCreate(); Picasso.Builder builder = new Picasso.Builder(this); builder.downloader(new OkHttp3Downloader(this,Integer.MAX_VALUE)); Picasso built = builder.build(); built.setIndicatorsEnabled(true); built.setLoggingEnabled(true); Picasso.setSingletonInstance(built); }}
<application android:name=".Global" .. ></application>
編輯:
Picasso.with(this) .load(url) .networkPolicy(NetworkPolicy.OFFLINE) .into(imageView);
編輯#2
Picasso.with(getActivity()).load(imageUrl).networkPolicy(NetworkPolicy.OFFLINE).into(imageView, new Callback() { @Override public void onSuccess() { } @Override public void onError() { //Try again online if cache failed Picasso.with(getActivity()) .load(posts.get(position).getImageUrl()) .error(R.drawable.header) .into(imageView, new Callback() { @Override public void onSuccess() { } @Override public void onError() { Log.v("Picasso","Could not fetch image"); } }); }});
- 3 回答
- 0 關注
- 836 瀏覽
添加回答
舉報
0/150
提交
取消