news 2026/4/24 14:41:19

HarmonyOS 6 ArkTS ImageAnimator 组件使用文档

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
HarmonyOS 6 ArkTS ImageAnimator 组件使用文档

文章目录

    • 核心 API
      • 1. 关键属性
      • 2. 动画状态 `AnimationStatus`
      • 3. 生命周期回调
      • 4. 控制按钮功能
    • 完整代码
    • 功能说明
    • 总结

核心 API

1. 关键属性

属性名作用
.images([])设置动画帧,传入图片资源数组
.duration()设置动画总时长(单位:毫秒)
.state()设置/获取动画状态(初始、运行、暂停、停止)
.reverse()设置是否反向播放
.iterations()循环次数:-1=无限循环,>0=指定次数
.fillMode()动画结束后显示模式

2. 动画状态AnimationStatus

状态含义
Initial初始状态
Running播放中
Paused暂停(停留在当前帧)
Stopped停止(回到第一帧)

3. 生命周期回调

回调触发时机
onStart动画开始
onPause动画暂停
onRepeat动画重复一次
onCancel动画被取消
onFinish动画播放完成

4. 控制按钮功能

  • start:开始播放
  • pause:暂停在当前画面
  • stop:停止并回到第一帧
  • reverse:切换正放/倒放
  • once:播放一次
  • infinite:无限循环

完整代码

// xxx.ets @Entry @Component struct ImageAnimatorExample { @State state: AnimationStatus = AnimationStatus.Initial; @State reverse: boolean = false; @State iterations: number = 1; build() { Column({ space: 10 }) { ImageAnimator() .images([ { // $r('app.media.img1')需要替换为开发者所需的图像资源文件。 src: $r('app.media.start') }, { // $r('app.media.img2')需要替换为开发者所需的图像资源文件。 src: $r('app.media.startIcon') }, { // $r('app.media.img3')需要替换为开发者所需的图像资源文件。 src: $r('app.media.foreground') }, { // $r('app.media.img4')需要替换为开发者所需的图像资源文件。 src: $r('app.media.gif') } ]) .duration(4000) .state(this.state) .reverse(this.reverse) .fillMode(FillMode.None) .iterations(this.iterations) .width(340) .height(240) .margin({ top: 100 }) .onStart(() => { console.info('Start') }) .onPause(() => { console.info('Pause') }) .onRepeat(() => { console.info('Repeat') }) .onCancel(() => { console.info('Cancel') }) .onFinish(() => { console.info('Finish') this.state = AnimationStatus.Stopped }) Row() { Button('start').width(100).padding(5).onClick(() => { this.state = AnimationStatus.Running }).margin(5) Button('pause').width(100).padding(5).onClick(() => { this.state = AnimationStatus.Paused // 显示当前帧图片 }).margin(5) Button('stop').width(100).padding(5).onClick(() => { this.state = AnimationStatus.Stopped // 显示动画的起始帧图片 }).margin(5) } Row() { Button('reverse').width(100).padding(5).onClick(() => { this.reverse = !this.reverse }).margin(5) Button('once').width(100).padding(5).onClick(() => { this.iterations = 1 }).margin(5) Button('infinite').width(100).padding(5).onClick(() => { this.iterations = -1 // 无限循环播放 }).margin(5) } }.width('100%').height('100%') } }

运行效果如图,点击start按钮开始轮播图片:

功能说明

  1. 播放(start)
    动画从当前位置开始按顺序播放。

  2. 暂停(pause)
    动画停在当前帧,画面不动。

  3. 停止(stop)
    动画终止,并回到第一帧

  4. 反向播放(reverse)
    点击切换正放/倒放,可实时切换。

  5. 播放一次(once)
    动画播放一轮后自动停止。

  6. 无限循环(infinite)
    动画无限播放,直到手动暂停/停止。

总结

  • ImageAnimator只能使用本地资源,不支持网络图片。
  • 帧图片使用$r('app.media.xxx')加载。
  • 动画控制通过修改state实现。
  • 支持正向、反向、循环、无限播放。
  • 提供完整生命周期回调,便于状态同步。

如果这篇文章对你有帮助,欢迎点赞、收藏、关注,你的支持是持续创作的动力

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/24 14:40:22

wxauto:用Python解放你的微信生产力,告别重复劳动!

wxauto:用Python解放你的微信生产力,告别重复劳动! 【免费下载链接】wxauto Windows版本微信客户端(非网页版)自动化,可实现简单的发送、接收微信消息,简单微信机器人 项目地址: https://gitc…

作者头像 李华
网站建设 2026/4/24 14:39:20

macOS窗口透明化魔法:打造你的专属透视工作空间

macOS窗口透明化魔法:打造你的专属透视工作空间 【免费下载链接】open-source-mac-os-apps 🚀 Awesome list of open source applications for macOS. https://t.me/s/opensourcemacosapps 项目地址: https://gitcode.com/gh_mirrors/op/open-source-m…

作者头像 李华
网站建设 2026/4/24 14:35:20

每日极客日报 · 2026年04月24日

每日极客日报 2026年04月24日 今日精选 20 条 IT 科技热点,覆盖 AI、大模型、开源、云原生等领域。GPT-6 发布已过一周,AI 竞赛进入新阶段,SpaceX 豪掷 600 亿美元押注 Cursor,Kubernetes v1.36 正式发布。 🔥 今日头…

作者头像 李华
网站建设 2026/4/24 14:33:18

告别find命令卡顿!为ARM路由器打造超轻量fd静态链接版本

告别find命令卡顿!为ARM路由器打造超轻量fd静态链接版本 【免费下载链接】fd A simple, fast and user-friendly alternative to find 项目地址: https://gitcode.com/GitHub_Trending/fd/fd 在嵌入式设备如ARM架构路由器上使用传统find命令时,你…

作者头像 李华