2012-05-02 59 views
1

我开发了一个应用程序,它显示了进度条下载的进度。下载Android中的进度

while ((chunkBytes = httpInputStream.read(outputByte, 0, 1024)) != -1) { 

       bytesRead = bytesRead + chunkBytes; 
       // write contents to the file 
       fileOutputStream.write(outputByte, 0, (int) chunkBytes); 
       // publish the progress of downloading.. 
       publishProgress((int)((bytesRead)*100/fileSize)); 

      } 

但是,我所试图做的是 - 而不是58/100的..(?二次进度)想显示3.5 MB/5.5 MB ....(MBS下载/总MB)低于这一进展..我试图改变二次进展,但没有帮助..是否有任何其他方式?

+0

'bytesRead'和'fileSize'变量包含no。读取的字节数和总数没有。的字节被读取,对吧?所以只需将它们分别乘以1048576即可将这些数字转换为兆字节!它的正义单位! –

+0

问题将与显示那些“MB”。我不认为有一个简单的方法来做到这一点。也许通过反思?或者,实现自己的ProgressDialog可能会更简单。 – Sver

+0

不,我不担心将这些MB转换为字节..(不是关于本机)这些东西工作正常..当你从谷歌Play商店下载应用程序 - 二级进展显示它..(主要进展显示 - 百分比..正好在它下面显示它是我在找什么.. –

回答

0

如果您想更改进度条中显示的内容,则必须使用字符串参数调用setProgressNumberFormat(),该参数表示您希望看到的内容,例如“%1d /%2d”将显示默认的“ 20/100“信息,而”%1d MB%2d MB“会显示你正在询问的内容。 “%1d”是您当前的进度值,“%2d”是您的最大值,可能会随着setMax(int max)更改。