やりたいこと
最初にサムネを表示させて,解像度の大きな画像はロードが完了してから表示させたい。
例えばMaster画面のサムネが並んだリストを選択したあと,Detail画面で大きな画像を表示させるとき。すでにメモリに読んでるはずのサムネを表示しておいて、ロード完了まで何も表示されないのを避けたい。
実装
Picassoの導入とかはほかにまかせます。
Picasso.with(mContext).load(thumbUrl).into(imageView, new Callback(){
@Override
public void onSuccess() {
Drawable drawable = imageView.getDrawable();
Picasso.with(mContext).load(originalUrl).placeholder(drawable).into(imageView);
}
@Override
public void onError() {
Picasso.with(mContext).load(originalUrl).into(imageView);
}
});
Callbackを使ってサムネのロード後にオリジナル画像を読み込むようにします。
また,サムネロードした直後にload(originalUrl).into(imageView)するとサムネの表示がされないので、サムネをdrawableとして取得してplaceholderに設定します。