Android ProgressBar与ProgressDialog详解
198 浏览量
更新于2024-08-29
收藏 70KB PDF 举报
本文主要介绍了Android开发中常用的两种进度条组件——ProgressBar和ProgressDialog的使用方法,包括它们的不同类型、常用属性以及如何自定义样式。
在Android应用开发中,ProgressBar是用于展示进度或加载状态的视图组件。它分为不确定式(无具体进度)和确定式(有具体进度)两种形式。不确定式通常用作过场动画,表示任务正在进行但无法预知完成时间;确定式则用于显示任务的明确进度。
1. 不确定式圆形进度条
这种类型的ProgressBar没有具体的进度显示,通常用于表示一个可能需要一段时间才能完成的操作。例如,style="@android:style/Widget.Holo.Light.ProgressBar" 和 style="@android:style/Widget.DeviceDefault.Light.ProgressBar.Large" 分别代表了不同主题下的不确定式圆形进度条,大小有大、中、小三种选择,默认为中等大小。
2. 条形进度条
确定式的ProgressBar通常表现为水平条形,如style="@android:style/Widget.ProgressBar.Horizontal" 和 style="@android:style/Widget.DeviceDefault.Light.ProgressBar.Horizontal",会显示当前进度相对于最大值的比例。开发者可以通过设置`android:progress`来指定当前进度,`android:max`定义最大值。
3. 标题栏进度条
在Activity的标题栏中也可以展示进度条,比如`requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);`可以添加不确定式进度条,`requestWindowFeature(Window.FEATURE_PROGRESS);`添加确定式条形进度条。通过`setProgressBarIndeterminateVisibility(true);`和`setProgressBarVisibility(true);`控制其可见性,`setProgress(int)`设置条形进度条的具体进度。
4. ProgressBar的常用属性
- `android:max`: 设置进度条的最大值。
- `android:progress`: 设置当前进度。
- `android:secondaryProgress`: 设置次要进度,通常用于显示更复杂的进度情况。
- `android:indeterminate`: 是否启用不确定模式,若为`true`,进度条将以不确定模式显示,反之则为确定模式。
- `android:progressDrawable`: 通过引用自定义的drawable资源,可以改变进度条的样式。
5. 自定义进度条样式
通过自定义`progressDrawable`属性,开发者可以创建XML文件定义进度条的外观,包括背景、主进度和次进度。例如,可以创建一个`layer-list`资源,包含多个`<item>`来定义不同部分的样式。
自定义进度条样式的XML示例:
```xml
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background">
<!-- 进度条背景 -->
</item>
<item android:id="@android:id/progress">
<!-- 主进度 -->
</item>
<item android:id="@android:id/secondaryProgress">
<!-- 次进度 -->
</item>
</layer-list>
```
6. ProgressDialog
ProgressDialog是一个对话框形式的进度条,除了提供不确定式和确定式进度条外,还可以显示文本信息。它通常用于阻塞用户操作,直到后台任务完成。通过`ProgressDialog.show()`显示对话框,`ProgressDialog.cancel()`或`ProgressDialog.dismiss()`关闭对话框。
在Android开发中,ProgressBar和ProgressDialog是显示任务进度和用户等待状态的重要工具。正确理解和使用这些组件,能够提升用户体验,让应用在进行长时间操作时给出明确的反馈。
2020-08-30 上传
2011-12-31 上传
306 浏览量
2019-07-29 上传
2021-12-04 上传
点击了解资源详情
点击了解资源详情
2023-06-13 上传
weixin_38545243
- 粉丝: 7
- 资源: 899
最新资源
- 新代数控API接口实现CNC数据采集技术解析
- Java版Window任务管理器的设计与实现
- 响应式网页模板及前端源码合集:HTML、CSS、JS与H5
- 可爱贪吃蛇动画特效的Canvas实现教程
- 微信小程序婚礼邀请函教程
- SOCR UCLA WebGis修改:整合世界银行数据
- BUPT计网课程设计:实现具有中继转发功能的DNS服务器
- C# Winform记事本工具开发教程与功能介绍
- 移动端自适应H5网页模板与前端源码包
- Logadm日志管理工具:创建与删除日志条目的详细指南
- 双日记微信小程序开源项目-百度地图集成
- ThreeJS天空盒素材集锦 35+ 优质效果
- 百度地图Java源码深度解析:GoogleDapper中文翻译与应用
- Linux系统调查工具:BashScripts脚本集合
- Kubernetes v1.20 完整二进制安装指南与脚本
- 百度地图开发java源码-KSYMediaPlayerKit_Android库更新与使用说明