介绍

本示例介绍使用显式动画 animateTo 实现左右地址交换动画。该场景多用于机票、火车票购买等出行类订票软件中。

效果预览图

使用说明

  1. 加载完成后显示地址交换动画页面,点击中间的图标,左右两边地址交换。

实现思路

  1. 创建左右两边Text组件显示地址。设置初始偏移量以及文本对齐方式。源码参考AddressExchangeView.ets
Row() {
Text($r('app.string.address_exchange_address_left'))
.translate({ x: this.translateX })
.width($r('app.string.address_exchange_address_width'))
.textAlign(this.swap ? TextAlign.End : TextAlign.Start)
...
Text($r('app.string.address_exchange_address_right'))
.translate({ x: -this.translateX })
.width($r('app.string.address_exchange_address_width'))
.textAlign(this.swap ? TextAlign.Start : TextAlign.End)
...
}
  1. 点击中间的图标时,修改是否切换的状态变量值和通过animateTo修改偏移量的值,来实现动态更新左右两边地址的显示,完成动画效果。源码参考AddressExchangeView.ets
Stack() {
Image($r('app.media.address_exchange_airplane'))
.size({
height: $r('app.integer.address_exchange_airplane_size'),
width: $r('app.integer.address_exchange_airplane_size')
})
Image($r('app.media.address_exchange_recycle'))
.size({
height: $r('app.integer.address_exchange_recycle_size'),
width: $r('app.integer.address_exchange_recycle_size')
})
.rotate({ angle: this.rotateAngle })
.animation({
curve: Curve.EaseOut,
playMode: PlayMode.Normal,
})
}
.width($r('app.string.address_exchange_image_width'))
.onClick(() => {
this.swap = !this.swap
animateTo({ curve: curves.springMotion() }, () => {
if (this.swap) {
this.translateX = this.distance;
} else {
this.translateX = this.zeroTranslate;
}
})
this.rotateAngle += this.rotateAddAngle;
})

工程结构&模块类型

addressexchange                                            // har类型
|---view
| |---AddressExchangeView.ets // 视图层-地址交换动画页面

模块依赖

utils

参考资料

显式动画

学习鸿蒙开发势在必行。鸿蒙开发可参考学习文档:https://qr21.cn/FV7h05

HarmonyOS NEXT应用开发案例——行程地址交换动画的更多相关文章

  1. 基于JWT的Token开发案例

    代码地址如下:http://www.demodashi.com/demo/12531.html 0.准备工作 0-1运行环境 jdk1.8 maven 一个能支持以上两者的代码编辑器,作者使用的是ID ...

  2. 使用Jquery+EasyUI 进行框架项目开发案例讲解之五 模块(菜单)管理源码分享

    http://www.cnblogs.com/huyong/p/3454012.html 使用Jquery+EasyUI 进行框架项目开发案例讲解之五  模块(菜单)管理源码分享    在上四篇文章 ...

  3. 使用Jquery+EasyUI 进行框架项目开发案例讲解之二---用户管理源码分享

    使用Jquery+EasyUI 进行框架项目开发案例讲解之二 用户管理源码分享   在上一篇文章<使用Jquery+EasyUI进行框架项目开发案例讲解之一---员工管理源码分享>我们分享 ...

  4. 【推荐】使用Jquery+EasyUI进行框架项目开发案例讲解之一---员工管理源码分享

    使用Jquery+EasyUI 进行框架项目开发案例讲解之一 员工管理源码分享   在开始讲解之前,我们先来看一下什么是Jquery EasyUI?jQuery EasyUI是一组基于jQuery的U ...

  5. 使用Jquery+EasyUI进行框架项目开发案例解说之中的一个---员工管理源代码分享

    使用Jquery+EasyUI 进行框架项目开发案例解说之中的一个 员工管理源代码分享 在開始解说之前,我们先来看一下什么是Jquery EasyUI?jQuery EasyUI是一组基于jQuery ...

  6. 使用Jquery+EasyUI 进行框架项目开发案例解说之二---用户管理源代码分享

    使用Jquery+EasyUI 进行框架项目开发案例解说之二 用户管理源代码分享  在上一篇文章<使用Jquery+EasyUI进行框架项目开发案例解说之中的一个---员工管理源代码分享> ...

  7. 使用Jquery+EasyUI进行框架项目开发案例讲解之一---员工管理源码分享

    使用Jquery+EasyUI进行框架项目开发案例讲解之一---员工管理源码分享 使用Jquery+EasyUI 进行框架项目开发案例讲解之一 员工管理源码分享    在开始讲解之前,我们先来看一下什 ...

  8. 知识图谱实战开发案例剖析-番外篇(1)- Neo4j是否支持按照边权重加粗和大数量展示

    一.前言 本文是<知识图谱实战开发案例完全剖析>系列文章和网易云视频课程的番外篇,主要记录学员在知识图谱等相关内容的学习 过程中,提出的共性问题进行展开讨论.该部分内容原始内容记录在网易云 ...

  9. AllJoyn+Android开发案例-android跨设备调用方法

    AllJoyn+Android开发案例-android跨设备调用方法 项目须要涉及AllJoyn开源物联网框架.前面主要了解了一些AllJoyn主要的概念.像总线,总线附件,总线对象,总线接口这种概念 ...

  10. 大数据技术之_09_Flume学习_Flume概述+Flume快速入门+Flume企业开发案例+Flume监控之Ganglia+Flume高级之自定义MySQLSource+Flume企业真实面试题(重点)

    第1章 Flume概述1.1 Flume定义1.2 Flume组成架构1.2.1 Agent1.2.2 Source1.2.3 Channel1.2.4 Sink1.2.5 Event1.3 Flum ...

随机推荐

  1. 一次对requirements环境的配置

    事情是这样的,我需要跑通一个代码,因此要配置环境,但是并不能利用requirements中给的指令直接配置,于是开始找一些其他的解决方法.作为一名小白,总是绕很多弯路. 记下一些蜿蜒. 首先,摘录re ...

  2. Android Studio批量打渠道包

    原文: Android Studio批量打渠道包 - Stars-One的杂货小窝 公司项目渠道包越来越大,每次发版本都是开发人员打包,研究了下如何批量打渠道包,记录过程 步骤 1.gradle配置 ...

  3. P2602 [ZJOI2010] 数字计数:数位DP

    https://www.luogu.com.cn/problem/P2602 // #include <iostream> // #include <iomanip> // # ...

  4. 一个简单的RTMP服务器实现 --- RTMP与H264

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明   本文作为本人csdn blog的主站的备份.(Bl ...

  5. rnacos版本更新为 v0.1.5

    rnacos是一个用 rust重新实现的nacos. rnacos比java实现的nacos更轻量.快速.稳定:合适在开发.测试.受资限服务等环境平替nacos服务使用. rnacos v0.1.5 ...

  6. 一文讲透Java核心技术之高可扩展利器SPI

    大家好,我是冰河~~ SPI的概念 JAVA SPI = 基于接口的编程+策略模式+配置文件 的动态加载机制 SPI的使用场景 Java是一种面向对象语言,虽然Java8开始支持函数式编程和Strea ...

  7. TorchV的RAG实践分享(三):解析llama_index的数据存储结构和召回策略过程

    1.前言 LlamaIndex是一个基于LLM的数据处理框架,在RAG领域非常流行,简单的几行代码就能实现本地的文件的对话功能,对开发者提供了极致的封装,开箱即用. 本文以官方提供的最简单的代理示例为 ...

  8. KingbaseES 服务器运行参数配置

    Kingbase 服务器运行参数配置 说明: KingbaseES 数据库中,服务器运行参数配和需改有多种方式和注意事项,根据不同的分类配置,修改配置方式不同.关于服务器参数分类请参照[Kingbas ...

  9. KingbaseES 数据库逻辑优化规则

    SQL 优化的过程可以分为逻辑优化和物理优化两个部分.逻辑优化主要是基于规则的优化,简称 RBO(Rule-Based Optimization).物理优化会为逻辑查询计划中的算子选择某个具体的实现, ...

  10. 2023 LGR 非专业级别软件能力认证第一轮(初赛)S组

    计算器.背包.代码都不能带进考场 禁赛三年并全国通报 B选项符合while语句 弱类型编程语言指的是可以进行类型转换,可以参与各种类型变量的运算 \[3\times 60(秒)\times 44.1\ ...