78 votes

Comment créer une barre de progression de manière programmatique ?

Mon application doit créer un petit ProgressBar de manière programmatique. ProgressBar ne dispose pas d'une méthode pour définir le style (je veux un petit symbole ProgressBar ). Le constructeur peut prendre un AttributeSet Cependant, il s'agit d'une et me demande d'implémenter un ensemble de fonctions. Existe-t-il un moyen de définir la ProgressBar à un petit style ? (Je ne peux pas utiliser XML pour créer ProgressBar .)

177voto

Neil Traft Points 6844

La plupart du temps, si vous fournissez un AttributeSet manuellement, vous devez utiliser l'un de ceux d'Android. Heureusement, ils ont exposé l'ensemble des attributs qui décrivent une petite barre de progression. Utilisez ce code :

progressBar = new ProgressBar(activity, null, android.R.attr.progressBarStyleSmall);

0 votes

Cela donne à la barre de progression un aspect jaunâtre et ancien au lieu du bleu fin (nouveau).

8 votes

@kilaka juste pour référence future, changez le Android.R.attr.progressBarStyleSmall en Android.R.attr.progressBarStyleHorizontal pour le nouveau :)

1 votes

@BabyGorilla Et est-ce que progressBarStyleHorizontal fonctionne sur toutes les versions d'Android ? !

12voto

plugmind Points 4546

Créez un fichier xml de mise en page dans le répertoire res/layout avec la barre de progression souhaitée contenant tous les attributs dont vous avez besoin :

<?xml version="1.0" encoding="utf-8"?>
<ProgressBar
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content" ... />

Ensuite, dans la classe Activity, vous pouvez créer un objet ProgressBar à partir de cette mise en page :

LayoutInflater inflater = getLayoutInflater();
    ProgressBar bar = (ProgressBar ) inflater.inflate(R.layout.small_progress_bar, null);

où R.layout.small_progress_bar renvoie à votre fichier xml de présentation.

Ne pouvez-vous toujours pas utiliser le fichier xml ?

0 votes

Au lieu de gonfler manuellement, vous pouvez définirYour contentview sur cette barre de progression et modifier la mise en page une fois que vos données sont logées.

0voto

Gowthaman M Points 4876

Activity.java

  progressBar = (ProgressBar) findViewById(R.id.progressbar);
 `progressBar.setVisibility(View.VISIBLE);`// To Show ProgressBar 
 `progressBar.setVisibility(View.INVISIBLE);` //To Hide ProgressBar

Vérifiez ici ProgressDialog est obsolète, quelle est la solution de rechange à utiliser ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X