鸿蒙UI系统组件06——进度条(Progress)

如果你也对鸿蒙开发感兴趣,加入“Harmony自习室”吧!扫描下面名片,关注公众号。

1、概述

Progress是进度条显示组件,显示内容通常为某次目标操作的当前进度。

2、创建进度条

Progress通过调用接口来创建,接口调用形式如下:

Progress(options: {value: number, total?: number, type?: ProgressType})

该接口用于创建type样式的进度条,其中value用于设置初始进度值,total用于设置进度总长度,type决定Progress样式。

Progress({ value: 24, total: 100, type: ProgressType.Linear }) // 创建一个进度总长为100,初始进度值为24的线性进度条

图片

3、设置进度条样式

Progress有5种可选类型,在创建时通过设置ProgressType枚举类型给type可选项指定Progress类型。其分别为:ProgressType.Linear(线性样式)、 ProgressType.Ring(环形无刻度样式)、ProgressType.ScaleRing(环形有刻度样式)、ProgressType.Eclipse(圆形样式)和ProgressType.Capsule(胶囊样式)。

<
### 鸿蒙系统音乐播放器中通过拖动进度条修改歌曲播放位置 在鸿蒙系统的音乐播放器应用中,为了实现用户可以通过拖动进度条来调整当前正在播放的歌曲的位置,可以采用`Slider`组件与多媒体控制接口相结合的方式。具体来说,在UI布局方面,使用`Stack`布局将`Progress`组件作为底层用于展示整体进度以及缓冲情况,而`Slider`则置于顶层以便于交互操作[^1]。 对于音乐播放而言,除了上述提到的基础控件外,还需要引入专门处理音频流的相关模块——@ohos.multimedia.media,该库提供了丰富的APIs能够满足诸如播放、暂停、跳转至指定时间点等需求[^3]。下面是一段简化后的代码片段,展示了如何监听`Slider`的变化事件,并据此更新媒体播放器的时间轴: ```javascript // 假设已经初始化好了audioPlayer实例 import media from '@ohos.multimedia.media'; let audioPlayer = new media.AudioPlayer(); function onSliderChange(value) { let duration = audioPlayer.getDuration(); // 获取总时长 let seekTime = (value / 100) * duration; // 计算目标秒数 audioPlayer.seekTo(seekTime); // 执行定位动作 } <Stack> <!-- 进度指示 --> <Progress value="{{currentPosition}}" max="100"/> <!-- 用户可拖拽的部分 --> <Slider onChange="onSliderChange" /> </Stack> ``` 此段代码中的`seekTo()`方法允许应用程序精确地移动到音频文件内的任意时刻,从而实现了根据用户输入动态调整播放头位置的效果。值得注意的是,这里假设了`currentPosition`变量表示当前播放百分比,实际开发过程中可能需要额外逻辑来保持这个数值同步更新。 另外,考虑到用户体验的一致性和美观性,建议开发者自行计算并适配不同分辨率下的界面元素间距,确保`Progress`和`Slider`两者之间无缝衔接。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值