ArkTS ImageAnimator组件的用法(附带实例)
ImageAnimator 提供帧动画组件来实现逐帧播放图片的能力,可以配置需要播放的图片列表,每幅图片可以配置时长。
下面介绍该组件的使用方法。首先,准备 4 幅图片放在 resources/media 文件夹中,然后编写如下示例代码:

图 1 ImageAnimator组件的示例效果
4 幅图片会循环切换,类似轮播图的效果。
注意,除了在 images 的每个属性中设置 src 之外,还可以设置其他属性,如 width、height、top、left、duration。另外,ImageAnimator 组件还支持以下事件:
通过这些事件可以设置动画的状态。
下面介绍该组件的使用方法。首先,准备 4 幅图片放在 resources/media 文件夹中,然后编写如下示例代码:
// 垂直布局,子元素间距 10vp
Column({ space: 10 }) {
ImageAnimator()
// 帧动画所需图片列表
.images([
{
src: $r('app.media.01'),
width: '300',
height: '300'
},
{
src: $r('app.media.02'),
width: '300',
height: '300'
},
{
src: $r('app.media.03'),
width: '300',
height: '300'
},
{
src: $r('app.media.04'),
width: '300',
height: '300'
}
])
// 每帧停留时间(毫秒)。设为 0 时不自动播放
.duration(2000)
// 播放状态:Running 表示立即开始播放
.state(AnimationStatus.Running)
// 播放方向:true 为倒序(从最后一张播到第一张);false 为正序
.reverse(true)
// 图片尺寸是否强制等于组件尺寸
// true -> 忽略单张图片的 width/height
// false -> 使用单张图片自身 width/height
.fixedSize(false)
// 循环次数:-1 表示无限循环
.iterations(-1)
// 动画开始前/结束后的样式保持策略
// None -> 不保留任何关键帧样式
// Forwards -> 保留最后一帧样式
// Backwards -> 延迟期间即应用第一帧样式
// Both -> 同时应用 Forwards 与 Backwards 规则
.fillMode(FillMode.None)
}
.width('100%')
.height(400)
ImageAnimator 组件的示例效果如下图所示:
图 1 ImageAnimator组件的示例效果
4 幅图片会循环切换,类似轮播图的效果。
注意,除了在 images 的每个属性中设置 src 之外,还可以设置其他属性,如 width、height、top、left、duration。另外,ImageAnimator 组件还支持以下事件:
- onStart(event: () => void):状态回调,动画开始播放时触发;
- onPause(event: () => void):状态回调,动画暂停播放时触发;
- onRepeat(event: () => void):状态回调,动画重复播放时触发;
- onCancel(event: () => void):状态回调,动画返回最初状态时触发;
- onFinish(event: () => void):状态回调,动画播放完成时或者停止播放时触发。
通过这些事件可以设置动画的状态。
ICP备案:
公安联网备案: