2016-11-16 4 views
2

Мне нужно загрузить некоторые изображения и видео на устройство, и мне нравится отслеживать прогресс, имея круговой ProgressBar в определенном режиме в оверлее.Как иметь циркуляр ProgressBar и в определенном режиме?

Проблема в том, что несмотря ни на что, ProgressBar все еще неопределенен.

Есть ли способ иметь его круглым и в детерминированном режиме?

Layout

<ProgressBar 
       android:layout_width="40dp" 
       android:layout_height="40dp" 
       android:progressTint="@color/colorPrimary" 
       android:indeterminate="false" 
       android:max="100" 
       android:layout_gravity="center" 
       android:id="@+id/message_media_preview_progress" 
       android:visibility="gone" 
       /> 

Код

final ProgressBar progressBar = (ProgressBar) mView.findViewById(R.id.message_media_preview_progress); 
progressBar.setVisibility(View.VISIBLE); 
progressBar.setProgress(0); 
storageController.downloadMedia(context, message.getVideoFile(), 
     new ProgressListener<Integer>() { 
      @Override 
      public void onResult(Integer result) { 
       progressBar.setProgress(result); 
      } 
     }, 
     new ResultListener<Boolean>() { 
      @Override 
      public void onResult(Boolean result) { 
       if(result) { 
        progressBar.setVisibility(View.GONE); 
        setMediaClickListener(message); 
       }else{ 
        Toast.makeText(context,"Error downloading file",Toast.LENGTH_SHORT).show(); 
       } 
      } 
     }); 
+0

К сожалению, это не возможно с фондовой Android ProgressBar. Посмотрите на внешние библиотеки: https://github.com/dinuscxj/CircleProgressBar –

+0

Хорошо, спасибо, спасибо. Если вы поместите комментарий в ответ, я помечаю его как принятый. –

+0

Написал ответ. –

ответ

0

Изменение бар видимость прогресса.

  1. Назначить идентификатор панели прогресса.
  2. Индикатор хода - кнопка загрузки нажата.
  3. Прогресс бар ушел - onResult