Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to apply custom spinner image to progress dialog in android

hi i tring to apply custom spinner image to progress dialod in android i use a .gif file for this purpose,and i apply it through this code,

dialog = new ProgressDialog(BackupRestoreActivityContext);    
dialog.setCancelable(true);    
dialog.setIcon(resId);    
dialog.setTitle(title);    
dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);    
dialog.setIndeterminate(true);
dialog.setIndeterminateDrawable(BackupRestoreActivityContext.getResources().getDrawable(R.drawable.bar));    
dialog.show();

through this code Spinner image changed to bar.gif but it is not spinning, please kindly help me whats wrong with this,thanks any help in this regard is greatly appreciated.

like image 645
Salman_roy Avatar asked Mar 11 '11 06:03

Salman_roy


2 Answers

In Android, animated gif don't work in ImageView. You need to play them as movies as shown by the sample ApiDemos.

But you can explode your gif in multple files and create an animation ressource file. An animation file is an xml file describing the list of drawable to display and the duration of each frame (or the transformations to apply if you can use them). You can read the details in the official documentation here: http://developer.android.com/guide/topics/resources/animation-resource.html#Frame

This drawable should then work nicely in your ProgressDialog

like image 199
pcans Avatar answered Oct 03 '22 06:10

pcans


A little late my answer but, you can do this:

1.- Make an animation drawable

For example : my_animation.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/myImage1"
        android:duration="200"/>
    <item
        android:drawable="@drawable/myImage2"
        android:duration="200"/>
...


</animation-list>

2.- In your activity call

dialog = new ProgressDialog(BackupRestoreActivityContext);    
dialog.setCancelable(true);    
dialog.setIcon(resId);    
dialog.setTitle(title);    
dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);    
dialog.setIndeterminate(true);
dialog.setIndeterminateDrawable(BackupRestoreActivityContext.getResources().getDrawable(R.drawable.my_animation));
dialog.show();
like image 28
raul_zevahc Avatar answered Oct 03 '22 06:10

raul_zevahc