2013-03-14 74 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()