第九节HarmonyOS 常用基础组件21-ImageAnimator

2024-02-01 19:04

本文主要是介绍第九节HarmonyOS 常用基础组件21-ImageAnimator,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、描述

提供帧动画组件来实现逐帧播放图片的能力,可以配置需要播放的图片列表,每张图片可以配置时长。

2、接口

ImageAnimator()

3、属性

参数名

参数类型

描述

images

Array<ImageFrameInfo>

设置图片帧信息集合,每一帧的帧信息(ImageFrameInfo)包含图片路径,图片大小、图片位置和图片播放时长信息。

state

AnimationStatus

默认为初始状态,用于控制 播放状态。

默认值:AnimationStatus.Initial

duration

number

单位为毫秒。默认时长为1000ms;duration为0时不播放图片;

reverse

boolean

设置播放顺序;false表示从第1张图片播放到最后1张;true表示从最后1张播放到第1张图片。

默认值:false

fixedSize

boolean

设置图片大小是否固定为组件大小;true表示图片大小与组件大小一致,此时设置图片的一些属性是无效的(width、height、top、left等)。false表示每一张图片的width、height、top、left属性都要单独设置。

默认值:true

fillMode

FillMode

设置动画开始与结束后的状态。

默认值:FillMode.Forwards

Iterations

number

默认播放一次,设置为-1时表示无限次播放。

默认值:1

4、ImageFrameInfo对象说明

参数名

参数类型

必填

描述

src

string | Resource

图片路径,图片格式svg、png、jpg。

width

number | string

图片宽度,默认值:0。

height

number | string

图片高度,默认值:0。

top

number | string

图片相对于组件左上角的纵向坐标,默认值:0。

left

number | string

图片相对于组件左上角的横向坐标,默认值:0。

duration

number

每一帧图片播放的时长,单位毫秒,默认值:0。

5、AnimationStatus对象说明

名称

描述

Initial

动画初始状态。

Running

动画处于播放状态。

Paused

动画处于暂停状态。

Stopped

动画处于停止状态。

6、FillMode对象说明

名称

描述

None

动画未执行时不会将任何样式应用于目标,动画播放完成之后恢复初始默认状态。

Forwards

目标将保留动画执行期间最后一个关键帧状态。

Backwards

动画将在应用于目标时立即应用第一个关键帧的值,并在delay期间保留此值。第一个关键帧取决于playMode,playMode为Normal或Alternate时为form的状态,playMode为Reverse或AlternateReverse时为to的状态。

Both

动画将遵循Forwards和Backwards的规则,从而在两个方向上拓展动画属性。

7、事件

onStart(event: () => void) - 状态回调,动画开始播放时触发。

onPause(event: () => void) - 状态回调,动画暂停播放时触发。

onRepeat(event: () => void) - 状态回调,动画重复播放时触发。

onCancel(event: () => void) - 状态回调,动画取消播放时触发。

onFinish(event: () => void) - 状态回调,动画播放完成时触发。

8、示例

import router from '@ohos.router'@Entry
@Component
struct ImageAnimatorPage {@State message: string = '提供帧动画组件来实现逐帧播放图片的能力,可以配置需要播放的图片列表,每张图片可以配置时长。'@State arrayImgs: ImageFrameInfo[] = [{src: $r('app.media.android'),}, {src: $r('app.media.java'),}, {src: $r('app.media.harmony'),}, {src: $r('app.media.css'),}, {src: $r('app.media.java_script'),}, {src: $r('app.media.typescript'),}]@State state: AnimationStatus = AnimationStatus.Initial;@State reverse:boolean = false;@State iterations:number = 1;build() {Row() {Scroll() {Column() {Text(this.message).fontSize(20).fontWeight(FontWeight.Bold).width("96%")Blank(12)ImageAnimator().images(this.arrayImgs)// 加载资源.duration(2000)// 设置动画间时长.state(this.state) // 控制播放状态.reverse(this.reverse) // 设置播放顺序。false表示从前到后,true表示从后往前,默认值:false。.iterations(this.iterations) // 设置默认播放次数,-1时无限次播放,默认值1..width("96%").height(200)Row() {Button('开始').width(100).padding(5).onClick(() => {this.state = AnimationStatus.Running}).margin(5)Button('暂停').width(100).padding(5).onClick(() => {this.state = AnimationStatus.Paused // 显示当前帧图片}).margin(5)Button('停止').width(100).padding(5).onClick(() => {this.state = AnimationStatus.Stopped // 显示动画的起始帧图片}).margin(5)}Row() {Button('播放顺序').width(100).padding(5).onClick(() => {this.reverse = !this.reverse}).margin(5)Button('循环次数').width(100).padding(5).onClick(() => {this.iterations = 2}).margin(5)Button('无限循环').width(100).padding(5).onClick(() => {this.iterations = -1 // 无限循环播放}).margin(5)}Blank(12)Button("ImageAnimator文本文档").fontSize(20).backgroundColor('#007DFF').width('96%').onClick(() => {// 处理点击事件逻辑router.pushUrl({url: "pages/baseComponent/imageAnimator/ImageAnimatorDesc",})})Blank(12)}.width('100%')}}.padding({ top: 12, bottom: 12 })}
}

9、效果图

这篇关于第九节HarmonyOS 常用基础组件21-ImageAnimator的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/668174

相关文章

Java利用Spire.Doc for Java实现在模板的基础上创建Word文档

《Java利用Spire.DocforJava实现在模板的基础上创建Word文档》在日常开发中,我们经常需要根据特定数据动态生成Word文档,本文将深入探讨如何利用强大的Java库Spire.Do... 目录1. Spire.Doc for Java 库介绍与安装特点与优势Maven 依赖配置2. 通过替换

MyBatis配置文件中最常用的设置

《MyBatis配置文件中最常用的设置》文章主要介绍了MyBatis配置的优化方法,包括引用外部的properties配置文件、配置外置以实现环境解耦、配置文件中最常用的6个核心设置以及三种常用的Ma... 目录MyBATis配置优化mybatis的配置中引用外部的propertis配置文件⚠️ 注意事项X

精准寻车+鸿蒙有礼特别版均已上线! 华为鸿蒙HarmonyOS 6负一屏新升级

《精准寻车+鸿蒙有礼特别版均已上线!华为鸿蒙HarmonyOS6负一屏新升级》不少朋友升级华为鸿蒙HarmonyOS6后,发现华为负一屏此次也新增了精准寻车功能,还为过往鸿蒙5.1及以上用户再度... 最近科技圈热议话题当属华为全新发布的Mate 80系列,这次不仅有全金属机身,第二代红枫影像和全新麒麟新品

JavaWeb 中的 Filter组件详解

《JavaWeb中的Filter组件详解》本文详细介绍了JavaWeb中的Filter组件,包括其基本概念、工作原理、核心接口和类、配置方式以及常见应用示例,Filter可以实现请求预处理、响应后... 目录JavaWeb 中的 Filter 详解1. Filter 基本概念1.1 什么是 Filter1.

一文详解Java常用包有哪些

《一文详解Java常用包有哪些》包是Java语言提供的一种确保类名唯一性的机制,是类的一种组织和管理方式、是一组功能相似或相关的类或接口的集合,:本文主要介绍Java常用包有哪些的相关资料,需要的... 目录Java.langjava.utiljava.netjava.iojava.testjava.sql

2025最新版Android Studio安装及组件配置教程(SDK、JDK、Gradle)

《2025最新版AndroidStudio安装及组件配置教程(SDK、JDK、Gradle)》:本文主要介绍2025最新版AndroidStudio安装及组件配置(SDK、JDK、Gradle... 目录原生 android 简介Android Studio必备组件一、Android Studio安装二、A

Springmvc常用的注解代码示例

《Springmvc常用的注解代码示例》本文介绍了SpringMVC中常用的控制器和请求映射注解,包括@Controller、@RequestMapping等,以及请求参数绑定注解,如@Request... 目录一、控制器与请求映射注解二、请求参数绑定注解三、其他常用注解(扩展)四、注解使用注意事项一、控制

前端Visual Studio Code安装配置教程之下载、汉化、常用组件及基本操作

《前端VisualStudioCode安装配置教程之下载、汉化、常用组件及基本操作》VisualStudioCode是微软推出的一个强大的代码编辑器,功能强大,操作简单便捷,还有着良好的用户界面,... 目录一、Visual Studio Code下载二、汉化三、常用组件1、Auto Rename Tag2

C# 空值处理运算符??、?. 及其它常用符号

《C#空值处理运算符??、?.及其它常用符号》本文主要介绍了C#空值处理运算符??、?.及其它常用符号,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录一、核心运算符:直接解决空值问题1.??空合并运算符2.?.空条件运算符二、辅助运算符:扩展空值处理

JavaScript装饰器从基础到实战教程

《JavaScript装饰器从基础到实战教程》装饰器是js中一种声明式语法特性,用于在不修改原始代码的情况下,动态扩展类、方法、属性或参数的行为,本文将从基础概念入手,逐步讲解装饰器的类型、用法、进阶... 目录一、装饰器基础概念1.1 什么是装饰器?1.2 装饰器的语法1.3 装饰器的执行时机二、装饰器的