2016-03-10 3 views
2

Я пытаюсь загрузить изображение с URL-адреса, и мне нужно отобразить размер файла и ход загрузки файла.Установите контрольную панель в КБ и МБ вместо% для менеджера загрузки Android

Это то, что у меня есть.

int bytes_downloaded = cursor.getInt(cursor 
         .getColumnIndex(DownloadManager.COLUMN_BYTES_DOWNLOADED_SO_FAR)); 
       int bytes_total = cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_TOTAL_SIZE_BYTES)); 

final int dl_progress = (int) ((bytes_downloaded * 100l)/bytes_total); 
       runOnUiThread(new Runnable() { 

        @Override 
        public void run() { 
         getFileSize(fileSizeInKB); 
         mProgressDialog.setProgress((int) dl_progress); 

        } 
    }); 

As of now its showing %(ie..10/100) 

Если установить его в mProgressDialog.setProgressNumberFormat("%1d kb/%2d kB") его показ в качестве 1kb of 100kb, но не может получить фактический размер файла, который я пытаюсь загрузить

мне нужно показать, как 1.2 MB/3.6MB

Проблема: прогресс отображается, как показано ниже 60/100, но я не хочу, чтобы это

enter image description here

+0

Что вы подразумеваете под *, но не можете получить фактический размер файла, который я пытаюсь загрузить *,? – Blackbelt

+0

@ Blackbelt. Невозможно понять, как я могу отобразить фактический размер файла в панели прогресса, а не% – coder

+0

, вы проверяли, установлена ​​ли длина содержимого? – Blackbelt

ответ

1

Наконец сделал работу:

Вот как

long downloadedsize, filesize; 
public static final double SPACE_KB = 1024; 
public static final double SPACE_MB = 1024 * SPACE_KB; 
public static final double SPACE_GB = 1024 * SPACE_MB; 
public static final double SPACE_TB = 1024 * SPACE_GB; 

и установить это Progressbar

mProgressDialog.setProgressNumberFormat((bytes2String(downloadedsize)) + "/" + (bytes2String(filesize))); 

Метод: Преобразование байта в строку

public static String bytes2String(long sizeInBytes) { 

     NumberFormat nf = new DecimalFormat(); 
     nf.setMaximumFractionDigits(2); 

     try { 
      if (sizeInBytes < SPACE_KB) { 
       return nf.format(sizeInBytes) + " Byte(s)"; 
      } else if (sizeInBytes < SPACE_MB) { 
       return nf.format(sizeInBytes/SPACE_KB) + " KB"; 
      } else if (sizeInBytes < SPACE_GB) { 
       return nf.format(sizeInBytes/SPACE_MB) + " MB"; 
      } else if (sizeInBytes < SPACE_TB) { 
       return nf.format(sizeInBytes/SPACE_GB) + " GB"; 
      } else { 
       return nf.format(sizeInBytes/SPACE_TB) + " TB"; 
      } 
     } catch (Exception e) { 
      return sizeInBytes + " Byte(s)"; 
     } 

    } 
+0

Как найти размер ** всего ** и ** lengthOfFile ** –

 Смежные вопросы

  • Нет связанных вопросов^_^