首页 > 其他分享 >HarmonyOS开发实战5.0【地址交换动画案例】

HarmonyOS开发实战5.0【地址交换动画案例】

时间:2024-08-29 21:52:27浏览次数:17  
标签:5.0 动画 鸿蒙 exchange app 学习 HarmonyOS address width

介绍

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

效果预览图

address_exchange

使用说明

  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                            // 视图层-地址交换动画页面 

最后

小编在之前的鸿蒙系统扫盲中,有很多朋友给我留言,不同的角度的问了一些问题,我明显感觉到一点,那就是许多人参与鸿蒙开发,但是又不知道从哪里下手,因为资料太多,太杂,教授的人也多,无从选择。有很多小伙伴不知道学习哪些鸿蒙开发技术?不知道需要重点掌握哪些鸿蒙应用开发知识点?而且学习时频繁踩坑,最终浪费大量时间。所以有一份实用的鸿蒙(HarmonyOS NEXT)文档用来跟着学习是非常有必要的。 

为了确保高效学习,建议规划清晰的学习路线,涵盖以下关键阶段:

希望这一份鸿蒙学习文档能够给大家带来帮助~


 鸿蒙(HarmonyOS NEXT)最新学习路线

该路线图包含基础技能、就业必备技能、多媒体技术、六大电商APP、进阶高级技能、实战就业级设备开发,不仅补充了华为官网未涉及的解决方案

路线图适合人群:

IT开发人员:想要拓展职业边界
零基础小白:鸿蒙爱好者,希望从0到1学习,增加一项技能。
技术提升/进阶跳槽:发展瓶颈期,提升职场竞争力,快速掌握鸿蒙技术

2.视频教程+学习PDF文档

(鸿蒙语法ArkTS、TypeScript、ArkUI教程……)

 纯血版鸿蒙全套学习文档(面试、文档、全套视频等)

                   

鸿蒙APP开发必备

​​

总结

参与鸿蒙开发,你要先认清适合你的方向,如果是想从事鸿蒙应用开发方向的话,可以参考本文的学习路径,简单来说就是:为了确保高效学习,建议规划清晰的学习路线

标签:5.0,动画,鸿蒙,exchange,app,学习,HarmonyOS,address,width
From: https://blog.csdn.net/weixin_55362248/article/details/141650626

相关文章

  • 原神角色数据列表:数据更新到5.0版本,更换品质排序背景颜色,列表可以显示攻略
    <!DOCTYPEhtml><htmllang="zh-CN"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>原神角色数据列表</title>......
  • 鸿蒙HarmonyOS自定义组件开发和使用_鸿蒙自定义组件
    自定义组件的介绍在开发和使用自定义组件直接,我们需要了解什么是自定义组件?在ArkUI中,UI显示的内容均为组件,由框架直接提供的称为系统组件,由开发者定义的称为自定义组件。在进行UI界面开发时,通常不是简单的将系统组件进行组合使用,而是需要考虑代码可复用性、业务逻辑与UI分离,后......
  • three动画循环animate使用setAnimationLoop代替requestAnimationFrame
     初始化render时调用setAnimationLoopThree.renderer=newTHREE.WebGLRenderer({antialias:true});Three.renderer.setSize(window.innerWidth,window.innerHeight);Three.renderer.setAnimationLoop(animate);animate:functionanimate(){//requestAnimati......
  • three动画循环animate使用setAnimationLoop还是requestAnimationFrame
     初始化render时调用setAnimationLoopThree.renderer=newTHREE.WebGLRenderer({antialias:true});Three.renderer.setSize(window.innerWidth,window.innerHeight);Three.renderer.setAnimationLoop(animate);animate:functionanimate(){//requestAnimati......
  • HarmonyOS NEXT未成年人模式无缝联动所有应用,过滤非适龄内容
    背景随着消费电子产品和移动互联网的普及,未成年人互联网普及率96.8%,超过80%的未成年人都拥有自己的上网设备,而如何引导孩子正确上网一直是家长们的担忧。市场上很多电子设备、系统推出了一些未成年人管控能力,却需要家长到各个应用去开启青少年模式,如哔哩哔哩、芒果TV、豆瓣等不同......
  • HarmonyOS NEXT未成年人模式无缝联动所有应用,过滤非适龄内容
    背景随着消费电子产品和移动互联网的普及,未成年人互联网普及率96.8%,超过80%的未成年人都拥有自己的上网设备,而如何引导孩子正确上网一直是家长们的担忧。市场上很多电子设备、系统推出了一些未成年人管控能力,却需要家长到各个应用去开启青少年模式,如哔哩哔哩、芒果TV、豆瓣等不同类......
  • 24.5.0:HOOPS Publish SDK
    向您的应用程序添加3DPDF导出等功能通过使用HOOPSPublishSDK向您的工程应用程序添加交互式3DPDF、HTML和标准CAD格式导出(包括STEPAP242、JT10、IGES、STL和3MF),增强您的工程应用程序。用于创建丰富工程文档的3DCAD发布SDKHOOPSPublishSDK可帮助开发......
  • gyp GET https://nodejs.org/download/release/v20.15.0/node-v20.15.0-headers.tar.g
    如图我执行yarn关于node会报错:gyphttpGEThttps://nodejs.org/download/release/v20.15.0/node-v20.15.0-headers.tar.gzgyphttpfetchGEThttps://nodejs.org/download/release/v20.15.0/node-v20.15.0-headers.tar.gzattempt1failedwithETIMEDOUTgypWARNins......
  • HarmonyOS SDK实况窗服务
    HarmonyOSSDK实况窗服务(LiveViewKit)作为一个实时呈现应用服务信息变化的小窗口,遍布于设备的各个使用界面,它的魅力在于将复杂的应用场景信息简洁提炼并实时刷新,在不影响当前其他应用操作的情况下,时刻向用户展示最新的信息动态,用户也可以点击实况窗卡片或胶囊进入应用落地页查看......
  • manim动画:利用极限的定义证明极限。
    函数的证明用极限的定义来证明下面的极限。 要用极限的定义证明 ,我们可以使用极限的定义: 设f(x)在包含a的开区间中对所有x≠a有定义,设L为实数。然后 如果,任意一个,存在一个 ,以至于如果对于所有x在f的定义域内,然后 用定义我们得到:,  同时 要用极限的定义证明......