第九节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 枚举的常用技巧汇总

《Java枚举的常用技巧汇总》在Java中,枚举类型是一种特殊的数据类型,允许定义一组固定的常量,默认情况下,toString方法返回枚举常量的名称,本文提供了一个完整的代码示例,展示了如何在Jav... 目录一、枚举的基本概念1. 什么是枚举?2. 基本枚举示例3. 枚举的优势二、枚举的高级用法1. 枚举

IDEA常用插件之代码扫描SonarLint详解

《IDEA常用插件之代码扫描SonarLint详解》SonarLint是一款用于代码扫描的插件,可以帮助查找隐藏的bug,下载并安装插件后,右键点击项目并选择“Analyze”、“Analyzewit... 目录SonajavascriptrLint 查找隐藏的bug下载安装插件扫描代码查看结果总结Sona

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

JS常用组件收集

收集了一些平时遇到的前端比较优秀的组件,方便以后开发的时候查找!!! 函数工具: Lodash 页面固定: stickUp、jQuery.Pin 轮播: unslider、swiper 开关: switch 复选框: icheck 气泡: grumble 隐藏元素: Headroom

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

如何在页面调用utility bar并传递参数至lwc组件

1.在app的utility item中添加lwc组件: 2.调用utility bar api的方式有两种: 方法一,通过lwc调用: import {LightningElement,api ,wire } from 'lwc';import { publish, MessageContext } from 'lightning/messageService';import Ca

常用的jdk下载地址

jdk下载地址 安装方式可以看之前的博客: mac安装jdk oracle 版本:https://www.oracle.com/java/technologies/downloads/ Eclipse Temurin版本:https://adoptium.net/zh-CN/temurin/releases/ 阿里版本: github:https://github.com/

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

30常用 Maven 命令

Maven 是一个强大的项目管理和构建工具,它广泛用于 Java 项目的依赖管理、构建流程和插件集成。Maven 的命令行工具提供了大量的命令来帮助开发人员管理项目的生命周期、依赖和插件。以下是 常用 Maven 命令的使用场景及其详细解释。 1. mvn clean 使用场景:清理项目的生成目录,通常用于删除项目中自动生成的文件(如 target/ 目录)。共性规律:清理操作

【Linux 从基础到进阶】Ansible自动化运维工具使用

Ansible自动化运维工具使用 Ansible 是一款开源的自动化运维工具,采用无代理架构(agentless),基于 SSH 连接进行管理,具有简单易用、灵活强大、可扩展性高等特点。它广泛用于服务器管理、应用部署、配置管理等任务。本文将介绍 Ansible 的安装、基本使用方法及一些实际运维场景中的应用,旨在帮助运维人员快速上手并熟练运用 Ansible。 1. Ansible的核心概念