你可以寫一個簡單的輔助這就要求畢加索兩次(如你所提到的)。
我沒有測試它,但它應該像
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