2010-08-23 7 views
66

Mon application a besoin de créer un petit ProgressBar par programme. ProgressBar n'a pas de méthode pour définir le style (je veux un petit progressBar). Le constructeur peut prendre un AttributeSet, mais il s'agit d'une interface et nécessite que j'implémente un ensemble de fonctions. Existe-t-il un moyen de définir le petit style de ProgressBar? (Je ne peux pas utiliser xml pour créer progressBar)Comment créer un ProgressBar par programme?

Répondre

159

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

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

Cela fait paraître la barre de progression jaune et vieux au lieu de la fine bleue (newish). –

+6

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

+1

@BabyGorilla Et progressBarStyleHorizontal fonctionne-t-il sur l'ensemble de la version Android ?! –

9

Créer un fichier xml de mise en page dans res/répertoire de mise en page avec souhaité barre de progression containig tous les attributs que 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" ... /> 

Suivante dans la classe d'activité, vous pouvez créer un objet ProgressBar de cette disposition:

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

où les liens R.layout.small_progress_bar à votre mise en page fichier xml.

Pouvez-vous toujours pas utiliser le fichier xml?

+123

il a dit par programme. –

+0

Au lieu de gonfler manuellement, vous pouvez définir votre vue du contenu sur cette barre de progression et modifier la disposition une fois que vos données sont enregistrées. – amalBit

-3

code complet pour ajouter la barre de progression programme

private ProgressDialog mProgressDialog; 
    mProgressDialog = new ProgressDialog(this); 
    mProgressDialog.setMessage("Signing........"); 
    mProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); 
    mProgressDialog.setCancelable(false); 

Appel ci-dessous méthode pour afficher la barre

mProgressDialog.show(); 

appel ci-dessous pour cacher la barre

mProgressDialog.dismiss(); 
+1

Bien que similaire, il s'agit d'un ProgressDialog et non d'un ProgressBar. L'OP peut ne pas vouloir un dialogue pour son indicateur de progression. – Parker

+0

Ce ProgressDialog est maintenant obsolète dans Android 26 –

Questions connexes