如何通过鸿蒙ArkTS使用属性动画

654 篇文章 4 订阅
648 篇文章 6 订阅

1.属性动画

通过可动画属性改变引起UI上产生的连续视觉效果,即为属性动画。属性动画是最基础易懂的动画

ArkUI提供两种属性动画接口animateToanimation驱动组件属性按照动画曲线等动画参数进行连续的变化,产生属性动画。

属性动画接口作用域原理使用场景
animateTo闭包内改变属性引起的界面变化。作用于出现消失转场。通用函数,对闭包前界面和闭包中的状态变量引起的界面之间的差异做动画。支持多次调用,支持嵌套。适用对多个可动画属性配置相同动画参数的动画。需要嵌套使用动画的场景。
animation组件通过属性接口绑定的属性变化引起的界面变化。识别组件的可动画属性变化,自动添加动画。组件的接口调用是从下往上执行,animation只会作用于在其之上的属性调用。组件可以根据调用顺序对多个属性设置不同的animation。适用于对多个可动画属性配置不同参数动画的场景。

使用animateTo产生属性动画

animateTo(value: AnimateParam, event: () => void): void animateTo接口参数中

  • • value指定动画参数(包括时长、曲线等)

  • • event为动画的闭包函数,闭包内变量改变产生的属性动画将遵循相同的动画参数。

2.示例

三个小动画示例:旋转,平稳,放缩

    @Builder
    buildPage() {
        List() {
            ListItem() {

                Column({ space: 10 }) {


                    Text('通过可动画属性改变引起UI上产生的连续视觉效果,即为属性动画。属性动画是最基础易懂的动画,ArkUI提供两种属性动画接口animateTo和animation驱动组件属性按照动画曲线等动画参数进行连续的变化,产生属性动画')
                        .width('80%')
                    Column() {
                        Text('ArkUI')
                            .fontSize(25)
                            .fontColor(Color.White)
                    }
                    .justifyContent(FlexAlign.Center)
                    .width(100)
                    .height(100)
                    .borderRadius(10)
                    .rotate({ angle: this.rotateValue })
                    .backgroundColor(Color.Green)

                    Column() {
                        Text('ArkUI')
                            .fontSize(25)
                            .fontColor(Color.White)

                    }
                    .justifyContent(FlexAlign.Center)
                    .width(100)
                    .height(100)
                    .backgroundColor(Color.Red)
                    .borderRadius(10)
                    .opacity(this.opacityValue)
                    .translate({ x: this.translateX })

                    Column() {
                        Text('ArkUI')
                            .fontSize(25)
                            .fontColor(Color.White)

                    }
                    .justifyContent(FlexAlign.Center)
                    .width(100)
                    .height(100)
                    .backgroundColor(Color.Blue)
                    .borderRadius(10)
                    .scale({ x: this.scaleX, y: this.scaleY })

                    Button('测试属性动画')
                        .margin({ top: 50 })
                        .onClick(() => {
                            this.handleStartAimationEvent()
                        })

                }.width('100%')
                .alignItems(HorizontalAlign.Center)
                .justifyContent(FlexAlign.Center)
            }

        }.width('100%')
        .height('100%')
    }
    

3.效果

3.1.初始状态

3.2.动画状态

3.3.动画状态

最后

如果你想快速提升鸿蒙技术,那么可以直接领取这份包含了:【OpenHarmony多媒体技术、Stage模型、ArkUI多端部署、分布式应用开发、音频、视频、WebGL、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战】等技术知识点。

鸿蒙Next全套VIP学习资料←点击领取!(安全链接,放心点击

1.鸿蒙核心技术学习路线

2.大厂面试必问面试题

3.鸿蒙南向开发技术

 4.鸿蒙APP开发必备

 5.HarmonyOS Next 最新全套视频教程

 6.鸿蒙生态应用开发白皮书V2.0PDF

这份全套完整版的学习资料已经全部打包好,朋友们如果需要可以点击鸿蒙Next全套VIP学习资料免费领取(安全链接,放心点击

  • 11
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值