Android Progressbar matériel linéaire


Exemple

Selon la documentation matérielle :

Un indicateur de progression linéaire devrait toujours remplir de 0% à 100% et ne jamais diminuer en valeur.
Il doit être représenté par des barres sur le bord d'un en-tête ou d'une feuille qui apparaissent et disparaissent.

Pour utiliser une barre de progression linéaire, utilisez simplement dans votre fichier xml:

<ProgressBar
    android:id="@+id/my_progressBar"  
    style="@style/Widget.AppCompat.ProgressBar.Horizontal"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>

entrer la description de l'image ici

Indéterminé

Pour créer ProgressBar indéterminé, définissez l'attribut android:indeterminate sur true .

<ProgressBar
    android:id="@+id/my_progressBar"  
    style="@style/Widget.AppCompat.ProgressBar.Horizontal"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:indeterminate="true"/>

Déterminé

Pour créer un ProgressBar déterminé, définissez l'attribut android:indeterminate sur false et utilisez les attributs android:max et android:progress :

<ProgressBar  
    android:id="@+id/my_progressBar"
    style="@style/Widget.AppCompat.ProgressBar.Horizontal"
    android:indeterminate="false"
    android:max="100"
    android:progress="10"/>

Utilisez simplement ce code pour mettre à jour la valeur:

ProgressBar progressBar = (ProgressBar) findViewById(R.id.my_progressBar);  
progressBar.setProgress(20);

Tampon

Pour créer un effet tampon avec ProgressBar, définissez l'attribut android:indeterminate sur false et utilisez les attributs android:max , android:progress et android:secondaryProgress :

<ProgressBar  
    android:id="@+id/my_progressBar"
    style="@style/Widget.AppCompat.ProgressBar.Horizontal"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:indeterminate="false"
    android:max="100"
    android:progress="10"
    android:secondaryProgress="25"/>

La valeur du tampon est définie par android:secondaryProgress attribut android:secondaryProgress .
Utilisez simplement ce code pour mettre à jour les valeurs:

ProgressBar progressBar = (ProgressBar) findViewById(R.id.my_progressBar);
progressBar.setProgress(20);
progressBar.setSecondaryProgress(50);  

Indéterminé et Déterminé

Pour obtenir ce type de ProgressBar, utilisez simplement un ProgressBar indéterminé utilisant l'attribut android:indeterminate à true.

<ProgressBar  
    android:id="@+id/progressBar"
    style="@style/Widget.AppCompat.ProgressBar.Horizontal"
    android:indeterminate="true"/>

Ensuite, lorsque vous devez passer d'une progression indéterminée à une progression déterminée, utilisez la méthode setIndeterminate() .

ProgressBar progressBar = (ProgressBar) findViewById(R.id.my_progressBar);  
progressBar.setIndeterminate(false);