2012-05-02 20 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)); 

      } 

はしかし、私は何をしようとしていることである - 代わりにその100分の58の...(?二次進行)は3.5メガバイト/ 5.5メガバイト....(MBSダウンロード/総MB)を表示したいと思いますその進歩の下で..私は副次的な進歩を変えようとしましたが、助けはありません。他の方法はありますか?

+0

'bytesRead'と' fileSize'変数にはnoが含まれています。読み込まれたバイト数と合計数。読まれるべきバイトの、右か?だから、これらの数字をメガバイトに変換するには、それぞれを1048576で分けてください!その単なるユニット! –

+0

問題は、それらの "mb"を表示することです。私はそれを行う簡単な方法はないと思います。多分リフレクションを通して?または、独自のProgressDialogを実装する方が簡単になるかもしれません。 – Sver

+0

いいえ、私はこれらのMBをBytesに変換することを心配していません。(ユニットについてではなく)これらのことはうまくいきます。Google Playストアからアプリをダウンロードすると、副次的な進捗状況が表示されます - それはちょうどそれの下に私が何を探しているかを示しています.. –

答えて

0

プログレスバーに表示されている内容を変更する場合は、setProgressNumberFormat()に文字列パラメータを指定する必要があります。たとえば、 "%1d /%2d" 20/100 "というメッセージが表示され、"%1d MB of%2d MB "が表示されます。 "%1d"は現在の進捗値で、 "%2d"は最大値です。これはsetMax(int max)で変更される可能性があります。

関連する問題