笔记 HarmonyOS实战开发:animation的常用属性

可以通过属性来定制动画效果

常用属性
名称参数类型必填描述
duration
number
动画时长,单位为毫秒。默认值: 1000
curve
string |
Curve |
ICurve
设置动画曲线。默认值: Curve.EaseInOut
delay
number
动画延迟播放时间。单位为毫秒,默认不延时播放。默认
值: 0 取值范围: (- , + )
iterations
number
动画播放次数。默认值: 1 取值范围: [-1, + ) 说明: 设置
-1 时表示无限次播放。设置为 0 时表示无动画效果。
playMode
PlayMode
动画播放模式,默认播放完成后重头开始播放。默认值:
PlayMode.Normal
onFinish
() => void
结束回调,动画播放完成时触发。从 API version 9 开始,该
接口支持在 ArkTS 卡片中使用。

playMode 取值

playMode的枚举值
名称描述
Normal动画正向播放。
Reverse动画反向播放。
Alternate动画在奇数次(1、3、5...)正向播放,在偶数次(2、4、6...)反向播放。
AlternateReverse动画在奇数次(1、3、5...)反向播放,在偶数次(2、4、6...)正向播放。

动画枚举 Curve的取值含义

Curve的枚举值
名称描述
Linear表示动画从头到尾的速度都是相同的。
Ease表示动画以低速开始,然后加快,在结束前变慢,CubicBezier(0.25,
0.1, 0.25, 1.0)。
EaseIn表示动画以低速开始,CubicBezier(0.42, 0.0, 1.0, 1.0)。
EaseOut表示动画以低速结束,CubicBezier(0.0, 0.0, 0.58, 1.0)。
EaseInOut表示动画以低速开始和结束,CubicBezier(0.42, 0.0, 0.58, 1.0)。
FastOutSlowIn标准曲线,CubicBezier(0.4, 0.0, 0.2, 1.0)。
LinearOutSlowIn减速曲线,CubicBezier(0.0, 0.0, 0.2, 1.0)。
FastOutLinearIn加速曲线,CubicBezier(0.4, 0.0, 1.0, 1.0)。
ExtremeDeceleration急缓曲线,CubicBezier(0.0, 0.0, 0.0, 1.0)。
Sharp锐利曲线,CubicBezier(0.33, 0.0, 0.67, 1.0)。
Rhythm节奏曲线,CubicBezier(0.7, 0.0, 0.2, 1.0)。
Smooth平滑曲线,CubicBezier(0.4, 0.0, 0.4, 1.0)。
Friction阻尼曲线,CubicBezier(0.2, 0.0, 0.2, 1.0)。

代码演示:

@Entry
@Component
struct AnimationPage {
  @State translateY: number = 1
  @State bgColor: ResourceColor = Color.Green
  @State fontColor: ResourceColor = '#0094ff'
  @State fontWeight: number = 700

  build() {
    Column() {
      Text('一只小风华')

        .width(100)
        .height(100)
        .fontWeight(this.fontWeight)
        .backgroundColor(this.bgColor)
        .textAlign(TextAlign.Center)//组件平移
        .translate({ y: this.translateY })//透明度
        .opacity(1)//动画效果
        .animation({
          //动画时长  参数类型 number 默认值为:1秒
          duration: 1500, //动画播放时间为1.5秒

          //动画曲线  默认的枚举类型为:Curve.EaseOut
          curve: Curve.EaseInOut,//EaseInOut 表示动画以低速开始和结束,CubicBezier(0.42, 0.0, 0.58, 1.0)

          //设置动画延迟 默认不延迟播放 默认值为:0
          delay: 500, //延迟0.5秒播放

          //动画播放次数 默认值为1 设置为-1时将无限播放
          iterations: 5, //播放次数为5次

          //动画的播放模式,默认播放完成后重头开始播放 默认值为:PlayMode.Normal
          playMode: PlayMode.Alternate, //Alternate 动画在奇数次(1、3、5...)正向播放,在偶数次(2、4、6...)反向播放。

          //结束回调 动画播放完成时触发
          onFinish: () => {
            console.log('我是一只小风华~') //当动画播放完成时,控制台输出:我是一只小风华~
          }


        })
      Button('修改状态变量')
        .onClick(() => {
          this.bgColor = Color.Pink
          this.translateY = 100
          this.fontColor = Color.Pink
          this.fontWeight = 900
        })
    }
    .width('100%')
    .height('100%')
    .justifyContent(FlexAlign.SpaceAround)

  }
}

代码效果展示:                                         

控制台onFinish输出展示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值