3

ImageSwitcher を使用して、サーバーから複数の画像をスライドショーとして表示しています。ImageSwitcher が初期化される前に、Picasso ライブラリで画像をプリロードしたいと考えています。

私たちのサーバーは画像に基本認証を必要とするため、インターセプターで Picasso を使用していると言いたいです。

私の現在のプリロード:

final int[] downloadedCounter = {0};
for (int i = 0; i < images.size(); i++) {
    final SlideshowImage image = images.get(i);

    PicassoUtils.getPicassoWithBasicAuthorizationFrom(user, getContext())
                .load(image.getImageUrl())
                .fetch(new Callback() {
                    @Override
                    public void onSuccess() {
                        downloadedCounter[0]++;

                        if (downloadedCounter[0] == images.size()) {
                            callback.downloadFinished();
                        }
                    }

                    @Override
                    public void onError() {

                    }
                });
}

そして、それは私のImageSwitcherです:

ImageView image = (ImageView) this.getNextView();
PicassoUtils.getPicassoWithBasicAuthorizationFrom(user, getContext())
        .load(imageUrl)
        .noFade()
        .into(image, new Callback() {
            @Override
            public void onSuccess() {
                showNext();
            }

            @Override
            public void onError() {
             }
        });

.networkPolicy(NetworkPolicy.OFFLINE)しかし、問題は、 ImageSwitcher で Picassoを使用すると何も読み込まれないため、キャッシュされないことです。

そしてshowNext()、ViewSwitcher を呼び出すたびに、デバイスの使用メモリが少し増えます。

4

0 に答える 0