鸿蒙中显式动画animateTo和animation

今天给大家带来鸿蒙中animateTo动画

我们先看一下效果

当然这个方法也可以用透明度做 方法有很多种,只要能实现效果就可以 

下面我们来看一下代码是怎么样做的

我这里首先用的是层叠布局先搭好架子

然后再根据x和Y轴 去平移模态框,在设置动画属性animation

 if (this.isShowitem) {
    Column() {
      Row() {
        Image($r('app.media.ch'))
          .width(20)
          .onClick(() => {
            animateTo({ duration: 1000 }, () => {
              this.isShowitem = false
            })
          })
      }
      .width('100%')
      .padding(10)

      Column() {
        Text('内容待完善')
          .animation({ duration: 1000, curve: Curve.EaseIn })
      }
    }
    .translate({
      //动画属性
      x: this.translateX, // 根据x轴去平移模态框
    })
    .animation({
      duration: 2000, //动画的时长
      curve: Curve.Ease, 
      playMode: PlayMode.Alternate,
    })
    .width('50%')
    .height('100%')
    .backgroundColor('#f1f1f1')
  }

}

这一部分是关键代码

下面是点击头像显示模态框

我这里用的是两种属性,可以更直观的看出两种属性的差距

 

下面是完整代码

点击显示

Row() {
  Image($r('app.media.user_01'))
    .width(20)
    .onClick(() => {
      console.log('2')
      // 显示模态框
      animateTo({ duration: 2000 }, () => { // 这个可以包在点击事情里面
        this.isShowitem = true
        this.translateX = 0
      })
    })
  Image($r('app.media.more_01'))
    .width(20)
    .margin({ left: 15 })
}

点击隐藏

if (this.isShowitem) {
  Column() {
    Row() {
      Image($r('app.media.ch'))
        .width(20)
        .onClick(() => {
          animateTo({ duration: 1000 }, () => {
            this.isShowitem = false
          })
        })
    }
    .width('100%')
    .padding(10)

    Column() {
      Text('内容待完善')
        .animation({ duration: 1000, curve: Curve.EaseIn })
    }
  }
  .translate({
    //动画属性
    x: this.translateX,
  })
  .animation({
    duration: 2000, //动画的时长
    curve: Curve.Ease,
    playMode: PlayMode.Alternate,
  })
  .width('50%')
  .height('100%')
  .backgroundColor('#f1f1f1')
}
WPF(Windows Presentation Foundation)是一种Microsoft开发的用户界面框架,可以用来创建富客户端应用程序。WPF框架提供了丰富的动画功能,能够实现窗体展开和收缩的动画效果。 要实现窗体展开和收缩的动画效果,可以借助WPF框架提供的动画类和属性。首先,我们需要定义一个动画对象,可以使用DoubleAnimation类来指定动画的目标属性和起始值,并设置动画的持续时间和缓动函数。 比如,我们可以定义一个名为widthAnimation动画对象,将它的目标属性设置为窗体的宽度属性。然后,通过在代码中调用Storyboard类来播放动画。 在展开和收缩窗体的过程中,可以通过更改窗体的尺寸来实现动画效果。通过使用代码控制窗体的尺寸属性,我们可以创建展开和收缩的动画效果。 如果要实现窗体展开动画,可以通过将窗体的宽度逐渐增加到目标宽度来实现。如果要实现窗体收缩动画,可以通过将窗体的宽度逐渐减小到目标宽度来实现。在播放动画时,可以使用AnimateTo()方法将动画应用到窗体上。 除了动画效果,你还可以通过WPF提供的其它功能来增强用户界面的交互体验。例如,通过添加鼠标事件来触发动画,或者使用触摸事件来作为触发展开和收缩效果的手势等。 总之,使用WPF框架可以方便地实现窗体展开和收缩的动画效果。通过定义动画对象,并在代码中控制窗体的尺寸属性,可以创建出独特的展开和收缩动画效果,提升用户界面的交互体验。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值