2013-03-14 72 views
1

進度條:改變進度條爲雙

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

此代碼爲一個進度條只需要我想修改代碼,採取雙重價值

+3

它任何意義,具有雙重一個進度條? – stinepike 2013-03-14 19:41:15

回答

5

你不能一個int值。 ProgressBar小部件僅接受ints的最大和當前進度。您無法控制最低限度,因爲它始終是0

您可以將您所需的最大進度值和當前進度值乘以10的冪,使小數點消失。 ProgressBar仍將顯示與十進制值相同的進度,因爲進度是currentValue/maxValue的比率。由於你將乘以相同的數字,比率是相等的。例如:

0.1/10 = 0.01 

但是,如果多了10兩個0.1和10擺脫了小數,您可以:

1/100 = 0.01 //Same result 
+2

+1很好的解釋:) – Sajmon 2013-03-14 19:40:21

+1

我怎樣才能將它應用到代碼 – user2166562 2013-03-14 19:51:35

+1

@ user2166562呃,只要不斷倍增你的雙值直到你清除了小數。如果您的最終值超過Integer.MAX_VALUE,那麼只會遇到問題,但這超過了20億,所以我懷疑您會遇到問題。 – 2013-03-14 19:52:37

1

它只接受整數值。沒有method爲了傳遞double值。

public synchronized void setProgress (int progress) 

查看android開發人員文檔。

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