0

したがって、各リスト項目に複数の ImageView を持つ ListView があります。Universal Image Loader を使用して各画像を読み込みます。

私が望むのは、リスト内のすべての画像がロードされている間、単一の不確定なプログレスバースピナー (アクションバーなど) を表示し、最後の画像がロードされたときにスピナーが非表示になるようにすることです。

これが可能かどうか、またはこれを行うための最良の手法がわかりませんか?

ありがとう。

4

1 に答える 1

3

これを試して。アダプター内:

@Override
public View getView(final int position, View convertView, ViewGroup parent) {
    ...     
    ImageLoadingListener listener = new CombinedImageLoadingListener(3, progressBar);
    imageLoader.displayImage(uri1, imageView1, listener);
    imageLoader.displayImage(uri2, imageView2, listener);
    imageLoader.displayImage(uri3, imageView3, listener);
    ...
}

そしてこのリスナー:

class CombinedImageLoadingListener extends SimpleImageLoadingListener {

    private int imageCount;
    private ProgressBar progressBar;

    public CombinedImageLoadingListener(int imageCount, ProgressBar progressBar) {
        this.imageCount = imageCount;
        this.progressBar = progressBar;
    }

    @Override
    public void onLoadingComplete(Bitmap loadedImage) {
        imageCount--;
        if (imageCount == 0) {
            progressBar.setVisibility(View.GONE);
        }
    }
}
于 2013-02-06T10:20:50.707 に答える