鸿蒙OS开发之动画相关示例分享, 关于弹出倒计时动画的实战案例源码分享

基础动画案例

@Entry
@Component
struct Index {@StatebtnWidth:number = 200 // 按钮的宽度@StatebtnHeight:number = 100 // 按钮的高度build() {Row(){Column(){Button("测试").width(this.btnWidth).height(this.btnHeight)// 按钮: 用来启动动画Button("动画开始").onClick(()=>{// 写动画animateTo({duration:1000},()=>{this.btnWidth=100this.btnHeight=50})})}.width("100%")}.height("100%")}
}

动画的播放次数

@Entry
@Component
struct Index {@StatebtnWidth:number = 200 // 按钮的宽度@StatebtnHeight:number = 100 // 按钮的高度build() {Row(){Column(){Button("测试").width(this.btnWidth).height(this.btnHeight)// 按钮: 用来启动动画Button("动画开始").onClick(()=>{// 写动画// iterations: -1 表示永久, 其他表示固定次数animateTo({duration:1000, iterations: 3},()=>{this.btnWidth=100this.btnHeight=50})})}.width("100%")}.height("100%")}
}

动画的播放模式

@Entry
@Component
struct Index {@StatebtnWidth:number = 200 // 按钮的宽度@StatebtnHeight:number = 100 // 按钮的高度build() {Row(){Column(){Button("测试").width(this.btnWidth).height(this.btnHeight)// 按钮: 用来启动动画Button("动画开始").onClick(()=>{// 写动画// iterations: -1 表示永久, 其他表示固定次数// playMode: Reverse 反向 Alternate反复animateTo({duration:1000, iterations: -1, playMode:PlayMode.Alternate},()=>{this.btnWidth=100this.btnHeight=50})})}.width("100%")}.height("100%")}
}

animation动画

@Entry
@Component
struct Index {@StatebtnWidth:number = 200 // 按钮的宽度@StatebtnHeight:number = 100 // 按钮的高度build() {Row(){Column(){Button("测试").width(this.btnWidth).height(this.btnHeight).animation({duration:1000,iterations: -1,playMode:PlayMode.Alternate})// 按钮: 用来启动动画Button("动画开始").onClick(()=>{this.btnWidth=100this.btnHeight=50})}.width("100%")}.height("100%")}
}

scale缩放动画

@Entry
@Component
struct Index {@StatebtnWidth:number = 200 // 按钮的宽度@StatebtnHeight:number = 100 // 按钮的高度@StatebtnScale:number = 1; // 缩放build() {Row(){Column(){Button("测试").width(this.btnWidth).height(this.btnHeight).scale({x: this.btnScale,y: this.btnScale,}).animation({duration:1000,iterations: -1,playMode:PlayMode.Alternate})// 按钮: 用来启动动画Button("动画开始").onClick(()=>{this.btnScale *= 2})}.width("100%")}.height("100%")}
}

显示隐藏动画

@Entry
@Component
struct Index {@Statemessage:string = "你好, 张大鹏!"@StateisShowMessage:boolean = truebuild() {Row(){Column(){// 固定高度的ColumnColumn(){if(this.isShowMessage){Text(this.message).fontSize(50).fontWeight(FontWeight.Bold)}}.height(50)// 按钮, 控制Button("显示/隐藏").onClick(()=>{animateTo({duration:1000},()=>{this.isShowMessage=!this.isShowMessage})})}.width("100%")}.height("100%")}
}

弹出模态框

@Entry
@Component
struct Index {@StateisShowDialog:boolean = false// 模态框内容@BuildergetContent(){Column(){Text("测试").fontColor(Color.White)}.justifyContent(FlexAlign.Center).backgroundColor(Color.Blue).width("100%").height("100%")}build() {Row(){Button("显示/隐藏").onClick(()=>{this.isShowDialog=!this.isShowDialog})}.height("100%").bindContentCover($$this.isShowDialog, // 模态框弹出条件this.getContent, // 绑定模态框)}
}

弹出倒计时广告

@Entry
@Component
struct Index {@StateisShowDialog: boolean = false@StatetimerCount: number = 5 // 默认5秒倒计时关闭广告timer: number = -1 // 定时器// 开始倒计时beginTimerCount() {this.timer = setInterval(() => {if (this.timerCount === 0) {clearInterval(this.timer)this.timerCount = 5 // 重置计时器this.isShowDialog = false // 关闭模态框}this.timerCount--}, 1000)}// 生命周期方法: 页面消失之前aboutToDisappear(): void {clearInterval(this.timer) // 防止定时器没有及时清理}// 模态框内容@BuildergetContent() {Column() {// 右上角Row() {Text(`还剩${this.timerCount}`).fontColor(Color.White)}.width("100%").justifyContent(FlexAlign.End).padding(10)}.backgroundColor(Color.Blue).width("100%").height("100%")}build() {Row() {Button("显示").onClick(() => {this.isShowDialog = true // 显示模态框this.beginTimerCount() // 开始倒计时})}.height("100%").bindContentCover($$this.isShowDialog, // 模态框弹出条件this.getContent, // 绑定模态框{modalTransition: ModalTransition.NONE, // 取消模态框动画})}
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/434497.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

XWF使用指南

简介 X-Ways Forensics 是由 Stefan Fleischmann 编写的一个轻量化的应急响应及取证工具,是 WinHex 的法证版本,因此界面逻辑和 WinHex 较为相似。在配置好 mplayer 的情况下,程序总体积在 100MiB 左右,运行时内存占用极低&#…

c++ 继承 和 组合

目录 一. 继承 1.1 继承的概念 1.2 继承定义 1.3 继承类模板 1.4. 继承中的作用域 二. 派生类(子类)的默认成员函数 2.1 概念: 2.2 实现⼀个不能被继承的类 2.3 继承与友元 2.4继承与静态成员 三.多继承及其菱形继承问题 3.1继承方…

市场调研利器 网络问卷的优势及面临的挑战

网络问卷作为市场调研工具,高效便捷、成本低廉、数据准确度高且灵活多样。但其低响应率、数据偏差、隐私与安全及技术依赖等挑战也需关注。企业应优化调研方法,应对挑战,以获取全面市场信息。 一、网络问卷的优势 首先,我们来分析…

sheng的学习笔记-AI-时序差分学习

AI目录:sheng的学习笔记-AI目录-CSDN博客 强化学习:sheng的学习笔记-AI-强化学习(Reinforcement Learning, RL)-CSDN博客 蒙特卡罗强化学习: sheng的学习笔记-AI-蒙特卡罗强化学习-CSDN博客 什么是时序差分学习 时序…

毕业设计选题:基于ssm+vue+uniapp的校园订餐小程序

开发语言:Java框架:ssmuniappJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:M…

北斗三号多模对讲机TD70:公专网融合、数模一体、音视频调度,推动应急通信效能升级

随着国家对应急通信和精准定位技术的重视程度不断提高,相关技术和设备的研发与应用也得到了迅猛发展。特别是在边防巡逻、林业巡防、海上作业等领域,通信设备的可靠性和功能性直接关系到人员的生命安全和任务的成功完成。 近年来,我国政府高度…

python 高效读取多个geojson 写入一个sq3(Sqlite) 、效率提高90%+

1.问题缘由: 由于工作需求,需要将多个(总量10G)geojson文件写入到sq3库,众所周知,sqlite 不支持多线程写入,那该怎么办呢,在网上也查了很多策略,都没有达到立竿见影的效果…

工控主板在工业控制中扮演什么角色

工控主板在工业控制中扮演着至关重要的角色,它是工业控制系统的核心组件,负责连接、控制和管理各种工业设备,实现自动化生产和智能化管理。具体来说,工控主板在工业控制中的作用可以归纳为以下几个方面: 一、核心控制…

年龄性别与手势识别系统源码分享

年龄性别与手势识别检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Comput…

计算机视觉学习路线:从基础到进阶

计算机视觉学习路线:从基础到进阶 计算机视觉(Computer Vision)是人工智能和机器学习领域中重要的分支,致力于让计算机能够理解和分析图像、视频等视觉信息。随着深度学习的发展,计算机视觉的应用变得越来越广泛&…

Python 解析 html

一、场景分析 假设有如下 html 文档&#xff1a; 写一段 python 脚本&#xff0c;解析出里面的数据&#xff0c;包括经度维度。 <div classstorelist><ul><li lng"100.111111" lat"10.111111"><h4>联盟店1</h4><p>…

基于Qt/C++UDP 调试软件功能及用途介绍

概述 UDP 调试软件是一个基于 Qt 框架的图形化应用程序&#xff0c;旨在提供一个简单易用的界面用于测试和调试 UDP&#xff08;用户数据报协议&#xff09;通信。该软件支持客户端和服务器模式&#xff0c;能够实现数据的发送和接收&#xff0c;方便开发者和网络工程师进行网…

牛顿迭代法求解x 的平方根

牛顿迭代法是一种可以用来快速求解函数零点的方法。 为了叙述方便&#xff0c;我们用 C C C表示待求出平方根的那个整数。显然&#xff0c; C C C的平方根就是函数 f ( x ) x c − C f(x)x^c-C f(x)xc−C 的零点。 牛顿迭代法的本质是借助泰勒级数&#xff0c;从初始值开始快…

C++ | Leetcode C++题解之第438题找到字符串中所有字母异位词

题目&#xff1a; 题解&#xff1a; class Solution { public:vector<int> findAnagrams(string s, string p) {int sLen s.size(), pLen p.size();if (sLen < pLen) {return vector<int>();}vector<int> ans;vector<int> count(26);for (int i …

828华为云征文|基于华为云Flexus X实例部署Uptime-Kuma服务器监控面板

目录 前言 一、Flexus云服务器X介绍 1.1 Flexus云服务器X实例简介 1.2 Flexus云服务器X实例特点 1.3 Flexus云服务器X实例场景需求 二、Flexus云服务器X购买 2.1 Flexus X实例购买 2.2 重置密码 2.3 登录服务器 三、Flexus X安装uptime-kuma面板 3.1 uptime-kuma介绍 3.2 uptim…

【频分复用】5G中OFDM和GFDM的比较(频谱效率、误码率、星座图、复杂度)【附MATLAB代码及报告】

微信公众号&#xff1a;EW Frontier QQ交流群&#xff1a;554073254 背景 5G需要满足低延迟、高数据速率、连接密度和其他应用需求&#xff0c;这些应用需要增强的移动的宽带、超可靠和低延迟连接以及海量机器类型连接[1]。这种通信所需的信道容量受到噪声、衰减、失真和符号间…

R包:ggheatmap热图

加载R包 # devtools::install_github("XiaoLuo-boy/ggheatmap")library(ggheatmap) library(tidyr)数据 set.seed(123) df <- matrix(runif(225,0,10),ncol 15) colnames(df) <- paste("sample",1:15,sep "") rownames(df) <- sapp…

TypeScript 设计模式之【策略模式】

文章目录 策略模式&#xff1a;灵活切换算法的导航系统策略模式的奥秘策略模式有什么利与弊?如何使用策略模式来优化你的系统代码实现案例策略模式的主要优点策略模式的主要缺点策略模式的适用场景总结 策略模式&#xff1a;灵活切换算法的导航系统 当你使用导航软件规划路线…

如何使用ssm实现北关村基本办公管理系统的设计与实现

TOC ssm721北关村基本办公管理系统的设计与实现jsp 第一章 绪论 1.1 选题背景 目前整个社会发展的速度&#xff0c;严重依赖于互联网&#xff0c;如果没有了互联网的存在&#xff0c;市场可能会一蹶不振&#xff0c;严重影响经济的发展水平&#xff0c;影响人们的生活质量。…

【教学类-18-04】20240508《蒙德里安“黑白格子画” 七款图案挑选》

背景需求 最近有2位客户买了蒙德里安黑白格子画的素材&#xff0c;其中一位问是否是1000张。 【教学类-18-03】20240508《蒙德里安“红黄蓝黑格子画”-A4横版》&#xff08;大小格子&#xff09;_processing简单图形画蒙德里安-CSDN博客文章浏览阅读1.1k次&#xff0c;点赞35次…