5

我必须在设备上下载一些图像和视频,我喜欢通过在确定模式下叠加一个圆形 ProgressBar 来跟踪进度。

问题是,无论如何,ProgressBar 仍然是不确定的。

有没有办法让它循环并处于确定模式?

布局

<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();
                }
            }
        });
4

3 回答 3

4

不幸的是,这对于现有的 Android ProgressBar 是不可能的。寻找外部库,例如:

http://github.com/dinuscxj/CircleProgressBar

于 2016-11-16T11:24:24.170 回答
1

现在可以在较新版本的材料设计库中具有确定的圆形进度条:

<com.google.android.material.progressindicator.CircularProgressIndicator
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

请参阅此处了解更多信息。

于 2021-01-08T09:19:12.397 回答
0

更改进度条的可见性。

  1. 为进度条分配 id。
  2. 进度条可见 - 单击下载按钮。
  3. 进度条不见了 - onResult
于 2016-11-16T11:15:21.423 回答