2013-03-14 5 views
1

BAR PROGRÈS:changer la barre de progression en deux

ProgressBar pb = (ProgressBar) findViewById(R.id.progressbar); 
pb.setProgress(0); 
int k = (int)max; 
pb.setMax(k); 
int j = (int)(cost); 
pb.setProgress(j); 

ce code pour une barre de progression qui ne prennent une valeur int je veux changer le code pour prendre une double valeur

+3

est-il logique d'avoir une barre de progression avec double? – stinepike

Répondre

5

Vous ne pouvez pas. Le widget ProgressBar accepte uniquement ints pour sa progression maximale et actuelle. Vous ne pouvez pas contrôler le minimum, car il est toujours 0.

Vous pouvez multiplier les valeurs de progression maximales et actuelles requises par une puissance de 10, de sorte que la décimale disparaisse. Le ProgressBar affichera toujours la même quantité de progression qu'avec une valeur décimale, car la progression est un ratio de currentValue/maxValue. Comme vous multipliez les deux par le même nombre, les ratios sont égaux. Par exemple:

0.1/10 = 0.01 

Cependant, si vous plusieurs fois 0,1 et 10 par 10 pour se débarrasser de la décimale, vous obtenez:

1/100 = 0.01 //Same result 
+2

+1 belle explication :) – Sajmon

+1

comment je peux l'appliquer au code – user2166562

+1

@ user2166562 Euh, continuez simplement à multiplier vos doubles valeurs jusqu'à ce que vous vous soyez débarrassé de la décimale. Vous ne rencontrerez des problèmes que si votre valeur finale dépasse Integer.MAX_VALUE, mais c'est plus de 2 milliards, donc je doute que vous l'atteigniez. –

1

Il accepte que la valeur entière. Il n'y a pas de method pour que cela passe la double valeur.

public synchronized void setProgress (int progress) 

Regardez les documents du développeur android.

Parameters 
progress the new progress, between 0 and getMax() 
Questions connexes