ProgressBar在图片已加载时显示

时间:2016-08-10 07:44:40

标签: android universal-image-loader

我使用通用图像加载程序库来显示图像。 我的问题是我有一个图像加载的进度条,意味着除非和直到图像无法加载进度条显示, 但是加载图像时仍会显示进度条。

以下是我的代码

    final ImageView imageView = ...
    final ProgressBar spinner = ...

    imageLoader.displayImage(imageUrl, imageView, options, new SimpleImageLoadingListener() {
    @Override
    public void onLoadingStarted(String imageUri, View view) {
        spinner.setVisibility(View.VISIBLE);
    }

    @Override
    public void onLoadingFailed(String imageUri, View view, FailReason failReason) {
        spinner.setVisibility(View.GONE);
    }

    @Override
    public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
        spinner.setVisibility(View.GONE);
    }
});

我使用了上面的代码,但问题是当图像已经加载并显示时,我的微调器仍然显示。

为什么会这样?

3 个答案:

答案 0 :(得分:1)

开始时使用此show(),完成后使用dismiss()

        ProgressDialog progress = new ProgressDialog(this);
        progress.setMessage("Downloading image ");
        progress.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
        progress.setIndeterminate(true);
        progress.setProgress(0);

        imageLoader.displayImage(imageUrl, imageView, options, new SimpleImageLoadingListener() {
            @Override
            public void onLoadingStarted(String imageUri, View view) {
                progress.show();
            }

            @Override
            public void onLoadingFailed(String imageUri, View view, FailReason failReason) {
                progress.dismiss();
            }

            @Override
            public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
                progress.dismiss();
            }
        });

答案 1 :(得分:0)

您需要明确驳回Progressbar。例如,在您的代码中,您可以执行以下操作:

@Override
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
    //dismissing the progressbar dialog
   spinner.dismiss();
}

尝试一下,让我们知道这是否有效。

答案 2 :(得分:0)

按照以下使用对话框

ProgressDialog dialog = new ProgressDialog(ShowMessage.this);
dialog.setMessage("Loading Image");
dialog.show();

并在流程添加后关闭对话框

dialog.dismiss();