Android: Animation de barre de progression horizontale personnalisée
Je suis en train de créer une barre de progression où la barre elle-même s'anime dans une verticale de spin à mesure qu'il progresse horizontalement. Je suis avec succès à l'aide de mes progrès dessiné le dessiné par:
<ProgressBar
android:id="@+id/progressBar"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
style="@android:style/Widget.ProgressBar.Horizontal"
android:progressDrawable="@drawable/custom_progress"
android:layout_marginRight="5dp" />
Voici mon drawable:
Mais je veux qu'il ait un subtil effet de roulis que sa progression. Donc, il serait comme les lignes verticales sont en mouvement vers l'arrière sorta. Vous suivez? Toute aide est très appréciée. Merci.
EDIT:
J'ai essayé de créé une animation-liste de mes progrès dessinés, mais je ne suis pas encore en mesure de voir l'animation. Une animation-liste à l'intérieur d'un clip pour le progrès de l'élément?
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background" android:drawable="@drawable/gutter"></item>
<item android:id="@android:id/progress">
<clip>
<animation-list android:oneshot="false">
<item android:drawable="@drawable/progress_bar_animate" android:duration="100" />
<item android:drawable="@drawable/progress_bar_animate2" android:duration="100" />
<item android:drawable="@drawable/progress_bar_animate3" android:duration="100" />
<item android:drawable="@drawable/progress_bar_animate4" android:duration="100" />
<item android:drawable="@drawable/progress_bar_animate5" android:duration="100" />
<item android:drawable="@drawable/progress_bar_animate6" android:duration="100" />
<item android:drawable="@drawable/progress_bar_animate7" android:duration="100" />
</animation-list>
</clip>
</item>
</layer-list>
source d'informationauteur askilondz
Vous devez vous connecter pour publier un commentaire.
Yahoo! Enfin!!! Œuvres ! (MAIS !!!! peut causer la fuite de mémoire avec de grandes images. C'est corrigé dans le post ci-dessous)
Ce code prend la tuile de l'image (tile1), les répétitions(TileMode.RÉPÉTER), fait changé d'animation (10 fragments), ajoute ce dans l'Animation de jeu.
Je ne pense pas que cela peut être fait de la façon dont j'ai pensé qu'il pourrait. La raison étant que je ne peux pas la référence de l'animation-liste, qui à ce moment est un ClipDrawable, et de le convertir en une AnimateDrawable qui est nécessaire afin que je puisse par programme démarrer l'animation. Il est également nécessaire de le contenir dans le clip de l'élément qui est la Barre de progression de la manière de masquer une image de sorte qu'il n'affiche que la partie de l'image ainsi que sa progression.
Côté de falsification de ma propre barre de progression à l'aide de ImageViews et l'animation de ceux que je ne vois pas un autre moyen de contourner cela pour cette ProgressBar.
Ma méthode précédente avait un problème avec la mémoire de consommer. J'ai eu une meilleure utilisation de TranslateAnimation. MAIS il a peu de LAG (attention sur HACK commentaire dans ProgressBgView.initAnimation méthode)
Mise en page xml :
Backend :
Et de la classe :
Ce que je reçois.
Et c'est moyen:
Après que, dans styles.xml:
Dans le fichier res/anim/progress_bar_indeterminate.xml:
Et voici 4 images à mettre dans le dossier res/drawable:
P. S. Si vous avez besoin d'inverser la direction de la barre de progression, il suffit de retourner les chiffres dans le nom des images dans progress_bar_indeterminate.xml.
Bonne journée! =)
J'ai trouvé une solution. Créer un xml dire, progress_loading.xml comme suit et l'attribuer au progrès dessinés de la progressbar :
Ensuite dans le code:
Où le xml loading.xml a l'animation de la liste. C'est travaillé pour moi.
J'ai trouvé une solution, un peu comme à l'explication ci-dessus, mais n'en sont issues. Fonctionne très bien!
Dire ci-dessous notre progress_drawable.xml
puis dans du code Java, procédez de la manière suivante:
download_progress_anim.xml
De code Java:
Espère que cela aide. Vous pouvez facilement le modifier à l'appui de votre propre mise en œuvre.
Pour ceux qui veulent faire de la barre de progression déterminée, je poste ma amélioration de user1269737 de réponse.
J'ai changé intAnimation méthode comme ceci:
Et a ajouté setProgress méthode d'animation avec les progrès de changement:
Et quelques changements dans le constructeur: