2

进度条:

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

此代码用于仅采用 int 值的进度条我想将代码更改为采用双精度值

4

2 回答 2

7

你不能。该ProgressBar小部件仅接受ints其最大和当前进度。你无法控制最小值,因为它总是如此0

您可以将所需的最大和当前进度值乘以 10 的幂,这样小数就会消失。ProgressBar仍将显示与十进制值相同的进度,因为进度是 的比率currentValue/maxValue。由于您将两者乘以相同的数字,因此比率相等。例如:

0.1/10 = 0.01

但是,如果您将 0.1 和 10 乘以 10 以消除小数点,您会得到:

1/100 = 0.01 //Same result
于 2013-03-14T19:37:47.790 回答
1

它只接受整数值。没有method传递双精度值。

public synchronized void setProgress (int progress)

看安卓开发者文档。

Parameters
progress    the new progress, between 0 and getMax()
于 2013-03-14T19:39:02.967 回答