- 添加Lottie库
ohpm install @ohos/lottie
- 在相应的类中引入组件
import lottie from '@ohos/lottie'
- 构建渲染上下文
private mainRenderingSettings: RenderingContextSettings = new RenderingContextSettings(true)
private mainCanvasRenderingContext: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.mainRenderingSettings)
- 将Lottie的资源文件data.json文件放置到Entry目录下的common文件夹下(放置本模块中,使用相对路径无法读取),与pages同级别。
所以json文件路径为:
private path: string = "common/lottie/data.json"
- 通过Canvas关联
Canvas(this.mainCanvasRenderingContext).width(40).height(40)
.onReady(() => {
this.mainCanvasRenderingContext.imageSmoothingEnabled = true;
this.mainCanvasRenderingContext.imageSmoothingQuality = 'medium';
this.animateItem?.resize()
})
loadLottie() {
lottie.destroy(this.animateName)
this.animateItem = lottie.loadAnimation({
container: this.mainCanvasRenderingContext,
renderer: 'canvas',
loop: true,
autoplay: false,
name: this.animateName,
contentMode: 'Contain',
frameRate: 30,
path: this.path,
})
}
play() {
lottie.play()
}
destroyLottie(){
lottie.destroy(this.animateName)
}