2016-08-10 3 views
0

Ich verwende universelle Image Loader-Bibliothek, um die Bilder anzuzeigen. mein Problem ist ich habe einen Fortschrittsbalken für Bild laden, bedeutet, es sei denn, und bis Bild wird nicht geladen Fortschrittsbalken angezeigt wird, Aber Fortschrittsbalken immer noch angezeigt werden, wenn Bild geladen wird.ProgressBar wird angezeigt, wenn das Bild bereits geladen ist

folgende ist mein Code

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); 
    } 
}); 

i den obigen Code verwendet haben, aber das Problem ist mein Spinner angezeigt wird nach wie vor als Bild bereits geladen und angezeigt.

Warum ist das so?

+0

fügt bitte fügen Sie Ihren gesamten Code –

+0

Bitte überprüfen Sie, ob 'onLoadingComplete' oder' onLoadingFailed 'wird angerufen oder nicht? und überprüfen Sie, ob sie aufgerufen werden, dann macht etwas anderes Ihren Lader nicht sichtbar. – himanshu1496

+0

Überprüfen Sie die Sichtbarkeit von Fortschrittsbalken in der XML-Datei – Piyush

Antwort

0

Sie müssen die Progressbar explizit ablehnen. Zum Beispiel könnten Sie in Ihrem Code so etwas tun:

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

Probieren Sie es aus und lassen Sie uns wissen, ob das funktioniert.

1

Verwenden Sie so show() wenn Start und dismiss() wenn Sie fertig sind.

 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(); 
      } 
     }); 
0

Verwenden Dialog nach unten

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

und entlassen Dialog nach Prozess

dialog.dismiss(); 
Verwandte Themen