【发布时间】:2017-04-30 05:55:28
【问题描述】:
我正在使用以下代码将 URL 加载到 ImageView。它首先尝试从缓存中加载,如果失败,它会尝试从 Internet 获取它:
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(imageUrl)
.error(R.drawable.error_image)
.into(imageView, new Callback() {
@Override
public void onSuccess() {
}
@Override
public void onError() {
Log.v("Picasso","Could not fetch image");
}
});
}
});
它工作得很好,但问题是每次我必须加载图像时编写所有这些代码真的很麻烦,与标准相比:
Picasso.with(getContext())
.load(imageUrl)
.into(imageView);
有没有办法封装这种行为?毕加索有没有提供帮助的方法?
【问题讨论】:
-
如果你总是要重试,你为什么要首先尝试
OFFLINE?如果默认可用,它将使用缓存版本。 -
@ianhanniballake 我不知道。我正在使用这个答案stackoverflow.com/a/30686992/2271834,所以我认为缓存使用是明确的