2017-05-16 3 views
1

In meiner Android-Anwendung verwende ich Universal Image Loader, um Bilder von URL anzuzeigen. Während des Ladens des Bildes möchte ich ein gif Bild zeigen. Das hinzugefügte GIF-Bild zeigt jedoch keine Animation. Hier ist mein Code, um Bild anzuzeigen.Gif Bild zeigt nicht seine Animation in Android-Anwendung

private static final DisplayImageOptions.Builder DEFAULT_DISPLAY_IMAGE_OPTIONS_BUIDLER = new DisplayImageOptions.Builder() 
     .imageScaleType(ImageScaleType.IN_SAMPLE_POWER_OF_2) 
     .displayer(new FadeInBitmapDisplayer(300, true, false, false)) 
     .showImageForEmptyUri(R.drawable.default_image) 
     .showImageOnLoading(R.drawable.loadingx) 
     .showImageOnFail(sampleapp.sample.com.sampleapp.R.drawable.default_image).cacheOnDisk(true) 
     .cacheInMemory(true).bitmapConfig(Config.ARGB_8888); 

welche Änderungen sollte ich während der Ladezeit-Bild

+0

Go Throught [mit Link zu finden Lösung] (http://stackoverflow.com/a/30277940/8012913) –

Antwort

0

Versuchen zu verwenden glide für GIF-Bild loading ...

Glide 
    .with(context) 
    .load(gifUrl) 
    .asGif() 
    .error(R.drawable.full_cake) 
    .diskCacheStrategy(DiskCacheStrategy.SOURCE) 
    .into(imageViewGif); 

Um ein animiertes GIF-Bild zu zeigen, verständlich machen, folgen Sie dem Link - here

Wenn Sie ProgressBar verwenden dann eine Methode erstellen, wie unten -

public void loadImage(Context context, String url, ImageView img, final ProgressBar eProgressBar) { 

     eProgressBar.setVisibility(View.VISIBLE); 
     Glide.with(context) 
       .load(url) 
       .listener(new RequestListener<String, GlideDrawable>() { 
        @Override 
        public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) { 
         eProgressBar.setVisibility(View.GONE); 
         return false; 
        } 

        @Override 
        public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) { 
         eProgressBar.setVisibility(View.GONE); 
         return false; 
        } 
       }) 
       .crossFade() 
       .error(R.drawable.placeholder_image) 
       .into(img); 
    } 

Verwenden Sie diese Methode und Ihren Parameterwert durch sie passiert ... :)

+0

Ich mag während der Ladezeit von Bild-URL ein GIF-Bild verwenden. Gibt es eine Möglichkeit, das zu implementieren? – user1810

+1

Ja, :) Ich bearbeite meine Antwort wie Sie gefragt haben. Hoffe es wird helfen. – Farya

+0

Es funktioniert Danke – user1810

0

Universal-Image Loader doesnot Unterstützung Gif siehe this wie Glide mit anderen Bibliotheken versuchen, die gif

Glide.with(context) 
    .load(imageUrl) 
    .asGif() 
    .placeholder(R.drawable.yourgif) 
    .crossFade() 
    .into(imageView); 
+0

Unterstützt Universal Image Loader Standard Progressbar oder Spinner – user1810

+0

Was ist die Beziehung zwischen Progressbar und Image Loader, kann ich nicht verstehen, was Sie fragen – Redman

+0

Sie sagten, dass Universal Image Loader doesn unterstütze gif nicht. Wenn ja, dann muss ich während des Ladens des Bildes nur etwas bewegen. Es gibt eine Standardfortschrittsleiste in Android. Dieser [link] (http://stackoverflow.com/questions/13653816/show-indeterminate-progressbar-while-loading-image-with-universal-image-loader) zeigt, wie Fortschrittsbalken während des Ladens des Bildes angezeigt werden. Ich habe es versucht, aber es verursacht auch einen Fehler. – user1810

0

I unterstützt Antwort bekommen mit der Gleitbibliothek. Aber Glide ist langsamer als Universal Image Loader.

Glide.with(getActivity().getApplication()) 
       .load(item.imageUrl) 
       .thumbnail(Glide.with(getActivity().getApplication()).load(R.drawable.loadingx)) 
       .fitCenter() 
       .crossFade() 
       .into(holder.image);