2010-12-03 21 views
10

Je voudrais montrer la barre de progression (en forme de cercle tournant ou quelque chose de similaire) lors du chargement de l'image depuis un emplacement distant.Comment afficher l'animation de progression de chargement pour une image?

Je ne veux pas que ProgressBar standard soit affiché au milieu de l'écran. Je voudrais l'avoir au milieu de l'imageView (ou Layout qui contient ImageView). Y a-t-il un moyen facile de faire cela? Par exemple, ai-je l'option d'attacher progressBar à une vue?

Je lisais à propos de FrameAnimation. Je pense que je vais le faire, mais je veux d'abord m'assurer que je ne réinvente pas la roue.

Merci.

+0

Uh. Ça ne fait rien. Il y a un contrôle ProgressBar que je peux laisser tomber dans ma mise en page et le rendre visible ou parti comme je le souhaite. – bobetko

Répondre

5

vous pouvez joindre un ProgressBar dans le support de mise en page ImageView,

RelativeLayout -> ImageView -> ProgressBar

vous pouvez définir la mise en page aligner params à la barre de progression pour montrer où vous voulez.

vous pouvez le faire dans une mise en page XML et gonfler plus tard programatically, donc, lorsque vous démarrez/arrêter le processus de téléchargement d'image que vous pouvez définir la visibilité ProgressBar on/off

+2

Je suis à la recherche de la même fonctionnalité, Pourriez-vous s'il vous plaît fournir un exemple de code? – h4ck3d

17

Voulez-vous dire comme une fileuse?

Oui, vous pouvez le faire:

Heres un exemple de code:

<!--Grey Spinner--> 
<ProgressBar 
    android:id="@android:id/progress" 
    style="?android:attr/progressBarStyleSmall" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
/> 
<!--Black Spinner--> 
<ProgressBar 
    android:id="@android:id/progress" 
    style="?android:attr/progressBarStyleSmallInverse" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
/> 

Voici quelques autres attributs de style que vous pouvez utiliser, il suffit de remplacer les attributs ci-dessus le style avec l'un de ceux-ci, par exemple style=?android:attr/<one of the attribute from below list>

progressBarStyleSmallTitle 
    progressBarStyleLarge 
    progressBarStyleLargeInverse 
    progressBarStyleHorizontal 
    progressBarStyleSmallTitle 

Vous devez également noter que si vous téléchargez l'image à partir d'Internet ne pas utiliser UIThread. Et vous pouvez également ajouter une barre de progression dans la barre de titre.

Ajouter spinner à la barre de titre avec le code suivant (demande d'appel .. en onCreate()):

requestWindowFeature(Window.FEATURE_PROGRESS); 
//calling setContentView() after requesting 
setContentView(R.layout.main); 
setProgressBarVisibility(true); 
//call setProgressBarVisibility(false); to turn it off 

Hope this helps. À la votre!