你可以写一个简单的辅助这就要求毕加索两次(如你所提到的)。
我没有测试它,但它应该像
Picasso.with(context)
.load(thumbnailUrl)
.error(errorPlaceholderId)
.into(imageView, new Callback() {
@Override
public void onSuccess() {
// TODO Call Picasso once again here
}
@Override
public void onError() {
}
);
有几种不同的方式让你的毕加索叫了两声。我可以想到的一个方法(再次未经测试)是
public static void loadImageWithCallback(String url, Callback callback) {
Picasso.with(context)
.load(url)
.error(errorPlaceholderId)
.into(imageView, callback);
}
public static void loadImage(String url) {
Picasso.with(context)
.load(url)
.error(errorPlaceholderId)
.into(imageView);
}
loadImageWithCallback("http://example.com/mythumbnail.jpg", new Callback() {
@Override
public void onSuccess() {
loadImage("http://example.com/myRealImage.jpg");
}
@Override
public void onError() {
}
}
编辑:我所知道的是,毕加索提供了这种回调机制。我在我的应用程序中使用它来隐藏显示的图像,直到图像加载。我会在成功或错误回调中隐藏它 - 因此您可以选择在图像加载完成时收到通知。然后你可以简单地再次调用它。我希望上述方法有效。
是由设计有关手动设置的ImageView缩略图什么。您不使用毕加索的占位符选项。然后你有缩略图,直到它被加载。 – akohout 2014-12-04 17:07:34
你是什么意思手动? – AbdelHady 2014-12-04 18:08:43