J'essaie d'obtenir une barre de progression indéterminée horizontale, qui va inverser son animation à la fin. Pour clarifier, je veux que la barre de progression anime de 0 à 100, puis revenait ensuite de 100 à 0. Voici une vidéo de l'animation standard , que je veux inverser à la fin.
Selon Documentation de la barre de progression Cela devrait être possible avec XML, mais je ne peux pas y parvenir. Vous pouvez soit régler Voici ma mise en œuvre: P> <ProgressBar
android:id="@+id/progressBar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="fill_parent"
android:layout_height="8dip"
android:indeterminate="true"
android:indeterminateOnly="true" //tried "false" too
android:indeterminateBehavior="cycle" // type "reverse" is the one from linked video?
android:max="100" />
5 Réponses :
Vous pouvez ajouter un événement où, en fonction des facteurs connus de manière programmée: ou p> Considérant quel style il est dépend complètement de votre analyse des données présentées. p> Si vous savez qu'il va toujours être indéterminé et que vous avez un style de comportement toujours attendu, ajoutez ces propriétés XML: P> android:indeterminate="true"
android:indeterminateDrawable="@drawable/progress_indeterminate_horizontal"
android:indeterminateOnly="false"
Je n'ai pas pu trouver comment changer l'animateur dans le Code> ProgressBar code>, je vous suggère donc d'aller avec votre propre digue.
Dans un exemple trivial, faisons ressembler à un rectangle: p>
res / drawable / vector_drawable_phorizontal.xml code> (nom inspiré par noyau / res / res / drables / vector_drawable_phorizontal.xml ) P>
<ProgressBar
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="8dip"
android:indeterminate="true"
android:indeterminateDrawable="@drawable/custom_progress" />
Donc, fondamentalement, utilisez une animation personnalisée au lieu de Android: indéterminébehavior = "cycle" code> et
android: indéterminationduration = "10000" code>? Je me demandais si ces valeurs peuvent être écrasées par les paramètres ou le style de l'appareil, de sorte que c'est la réaction pourquoi je ne peux pas les faire travailler?
Une autre approche que vous pouvez suivre est d'utiliser un style déterminé et de définir des valeurs de 0 à 100 et de 100 à 0 retour.:
setProgress(100); // sleep animation duration setProgress(0); // sleep animation duration // repeat
p, pense que cette solution est moins élégante que Avoir une personnalisation inderminedrawble , car elle nécessite de disposer de ces fausses mises à jour de progression. P> P>
Ajoutez ceci à votre mise en page,
<ProgressBar android:id="@+id/pbProcessing" style="?android:attr/progressBarStyleHorizontal" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/frame_getgas" android:indeterminateOnly="true"/>
<layer-list> <item android:id="@android:id/background"> <shape> <corners android:radius="2dip" /> <gradient android:startColor="#43ffffff" android:centerColor="#43ffffff" android:centerY="0.75" android:endColor="#43ffffff" android:angle="270" /> </shape> </item> <item android:id="@android:id/progress"> <clip> <shape> <corners android:radius="2dip" /> <gradient android:startColor="#fff" android:endColor="#fff" android:angle="270" /> </shape> </clip> </item> uses this drawableLook at this picture
Quelles valeurs héritées de
style = "? Android: ATTR / ProgressBarStyleHorizontal" Code>?
@Timcastelijns: En fait, je ne sais pas. C'est le parent Android standard. Je n'ai aucune idée, comment jetez un coup d'œil à ces valeurs: - /
Avez-vous regardé cela: Stackoverflow.com/a/6450417/1185737
@Kunalk Oui, a trouvé cela, mais c'est un autre sujet. Je suis simple à la recherche d'un exemple de travail où
Android: indétermination de code> ou
android: indéterminébehavior code> vraiment travaillant dans XML selon la documentation et pour la prochaine fois que je suis confronté à ces problèmes.