如何让 ProgressBar 循环并处于确定模式?
How to have a ProgressBar circular and in determinate mode?
我必须在设备上下载一些图像和视频,我喜欢通过在确定模式下覆盖它们的圆形 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();
}
}
});
更改进度条可见性。
- 为进度条分配 ID。
- 进度条可见 - 单击下载按钮。
- 进度条消失了 - onResult
不幸的是,库存 Android ProgressBar 无法做到这一点。寻找外部库,例如:
现在可以在较新版本的 material design library 中使用确定的循环进度条:
<com.google.android.material.progressindicator.CircularProgressIndicator
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
参考here了解更多信息。
我必须在设备上下载一些图像和视频,我喜欢通过在确定模式下覆盖它们的圆形 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();
}
}
});
更改进度条可见性。
- 为进度条分配 ID。
- 进度条可见 - 单击下载按钮。
- 进度条消失了 - onResult
不幸的是,库存 Android ProgressBar 无法做到这一点。寻找外部库,例如:
现在可以在较新版本的 material design library 中使用确定的循环进度条:
<com.google.android.material.progressindicator.CircularProgressIndicator
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
参考here了解更多信息。