2016-08-24 3 views
0

ich verwendet habe, GIF-Bild auf den Fortschrittsbalken mit Bibliothek ihre Arbeit gut, aber Problem ist, dass es nicht um die Animation nicht wiederholtEinstellung GIF-Bild toProgressBar

loading_dialog = new ProgressDialog(LeadProfile.this, style.MyInnerProgressDialogTheme); 
loading_dialog.setCancelable(false); 
loading_dialog.setIndeterminateDrawable(GifDrawable.createFromResource(getResources(), drawable.home_loder)); 
loading_dialog.setProgressStyle(android.R.style.Widget_ProgressBar_Small); 
     loading_dialog.show(); 

kann mir jemand helfen .. Ich habe verwendet auch die Benutzerdefinierte Fensteransicht und benutzerdefinierter Dialog funktioniert immer noch nicht, obwohl die Animation nicht wiederholt wird, obwohl das GIF-Bild diese Wiederholung hat

+0

können Sie Sequenz von Bildern verwenden und AnimationDrawable dafür verwenden. Sie benötigen keine Bibliothek, wenn Sie Bilderfolgen verwenden – Prashant

+0

Haben Sie versucht, setLoopCount (0) auf Ihrem GifDrawable aufzurufen? –

+0

danke @ Prashant, aber ich habe bereits Bibliothek für GIF-Bild verwenden und nicht Sequenzbilder verwenden möchten. – Pooja

Antwort

0

Sie können stattdessen Animation Drawable verwenden. Sie werden für die Sequenz von Bildern benötigen (Sie es von gif selbst

In Ihrem Activity oder Dialog

// ImageView that will act as loader. it can be added in `Activity` or `Dialog` 
ImageView loading_dialog = (ImageView); 
findViewById(R.id.loading_dialog); 

loading_dialog.setBackgroundResource(R.drawable.preloader); 
AnimationDrawable animationDrawable = (AnimationDrawable) loading_dialog.getBackground(); 
animationDrawable = (AnimationDrawable) preLoader.getBackground(); 

// to start animation 
animationDrawable.start(); 

// to stop animation 

animationDrawable.stop(); 

Und in ziehbar Ordner erstellen preloader.xml

<?xml version="1.0" encoding="utf-8"?> 
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" 
    android:oneshot="false" > 
<item 
    android:drawable="@drawable/preloader1" 
    android:duration="45"/> 
<item 
    android:drawable="@drawable/preloader2" 
    android:duration="45"/> 
<item 
    android:drawable="@drawable/preloader3" 
    android:duration="45"/> 
<item 
    android:drawable="@drawable/preloader4" 
    android:duration="45"/> 
<item 
    android:drawable="@drawable/preloader5" 
    android:duration="45"/> 

erstellen

Wenn Sie dies nur einmal ausführen möchten, ändern Sie android:oneshot:"true" und Sie können so viele Gegenstände wie möglich aufnehmen. und Sie können auch die Dauer für ein Bild ändern.