HarmonyOS 鸿蒙Next 有没有第三方库的水波纹效果组件

发布于 1周前 作者 yibo5220 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 有没有第三方库的水波纹效果组件

有没有第三方库的水波纹效果组件哈

2 回复

看看这个demo的水波纹是否符合

[@Entry](/user/Entry)
[@Component](/user/Component)
struct WaterPage2 {
 private settings: RenderingContextSettings = new RenderingContextSettings(true)
 private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings)
 waveSpeed: number = 0.03
 phase: number = 0

 drawWave() {
   this.context?.clearRect(0, 0, this.context.width, this.context.height)

   this.context?.beginPath()
   for (let x = 0; x <= this.context.width; x += 10) {
     const y = this.context.height / 2 + Math.sin(x * 0.01 + this.phase) * 20
     this.context?.lineTo(x, y)
   }
   this.context?.lineTo(this.context.width, this.context.height)
   this.context?.lineTo(0, this.context.height)
   this.context?.closePath()

   this.context.fillStyle = '#30007bff'
   this.context?.fill()

   this.context?.beginPath()
   for (let x = 0; x <= this.context.width; x += 10) {
     const y = this.context.height / 2 + Math.sin(x * 0.02 + this.phase) * 10
     this.context?.lineTo(x, y)
   }
   this.context?.lineTo(this.context.width, this.context.height)
   this.context?.lineTo(0, this.context.height)
   this.context?.closePath()

   this.context.fillStyle = '#50007bff'
   this.context?.fill()

   this.context?.beginPath()
   for (let x = 0; x <= this.context.width; x += 10) {
     const y = this.context.height / 2 + Math.sin(x * 0.015 + this.phase) * 30
     this.context?.lineTo(x, y)
   }
   this.context?.lineTo(this.context.width, this.context.height)
   this.context?.lineTo(0, this.context.height)
   this.context?.closePath()

   this.context.fillStyle = '#20007bff'
   this.context?.fill()

   this.phase += this.waveSpeed
 }

 build() {
   Column() {
     Canvas(this.context)
       .width(200)
       .height(100)
       .backgroundColor(Color.Pink)
       .onReady(() => {
         setInterval(this.drawWave.bind(this), 20)
       })
   }.width("100%").height("100%").justifyContent(FlexAlign.Center)
 }
}

更多关于HarmonyOS 鸿蒙Next 有没有第三方库的水波纹效果组件的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


HarmonyOS 鸿蒙Next确实存在第三方库的水波纹效果组件

在HarmonyOS的开发中,开发者可以利用第三方库来实现水波纹效果组件。例如,material-ripple项目就是一个为组件添加点击水波纹效果的第三方库,它属于OpenHarmony的第三方组件适配移植系列。该组件已经实现了水波纹效果,但可能在某些情况下(如动画绘制过程中)会出现略微卡顿的现象。

此外,也有开发者通过自定义动画的方式来实现水波纹效果。例如,通过创建多个等比例放大的圆形,并利用显示动画animateTo动态改变这些圆形的放大系数和透明度,从而模拟出水波纹的动画效果。

如果你在使用过程中遇到问题,建议参考该组件的官方文档或示例代码。如果问题依旧没法解决,请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部