HarmonyOS 鸿蒙Next 线上Codelabs系列挑战赛第二期 调用三方库之shimmer
HarmonyOS 鸿蒙Next 线上Codelabs系列挑战赛第二期 调用三方库之shimmer 先上效果图:
一、项目的基本情况
项目共分2个模块,一个是本地库的调用,一个是网络上三方库的调用。本地库主要功能是随机显示若干个不同颜色的圆形图案,实现属性动画的展示,同时熟悉如何新建、调用本地库的流程步骤;网络三方库分别调用lottieETS、shimmer两个(lottieETS示例有详细的介绍,本项目主要是调用shimmer)。shimmer是一个简单灵活的为应用视图添加闪烁效果的库,主要有由左到右倾斜,由左到右竖直,由左到右圆形,由上到下水平等闪光效果。
二、项目结构
三、功能模块介绍
1、本地库
新建方式一:
新建方式二:
,第二、第三步同方式一。
新建成功后如下:
页面效果:
本地库只包含一个自定义组件MyCircle,根据接收到的参数显示圆形,代码如下:
@Component
export struct MyCircle {
@Prop cRadius:number //半径
@Prop fOpacity:number //透明度
@Prop fColor:string //填充颜色
@Prop xPosition:number //x坐标位置
@Prop yPosition:number //y坐标位置
build() {
Column(){
Circle()
.size({width:this.cRadius*2,height:this.cRadius*2})
.fillOpacity(this.fOpacity)
.fill(this.fColor)
.position({x:this.xPosition,y:this.yPosition})
}
}
2.网络三方库
—lottieETS,官方示例有详细的讲解,不再介绍。
shimmer是一个简单灵活的为应用视图添加闪烁效果的库,主要有由左到右倾斜,由左到右竖直,由左到右圆形,由上到下水平等闪光效果
下载安装
npm install @ohos/shimmer --save
备注:按照这种方式安装好后,三方库保存在
我安装在下图1的位置,先在2的位置添加一行代码:
把鼠标移动到红线上面,会有如下提示:
点击Run 'npm install’就可以安装好了
—页面调用,通过如下语句:
import {Shimmer, ShimmerElement} from '@ohos/shimmer'
页面效果:
定义相关的变量
private renderingSettings:RenderingContextSettings=new RenderingContextSettings(true)
private renderingContext:CanvasRenderingContext2D=new CanvasRenderingContext2D(this.renderingSettings)
private animationItem:any=null
mShimmer:Shimmer=new Shimmer()
//mDirection:Shimmer效果方向,默认0:从左上到右下,1:从上到下,2:右下到左上,3:从下到上
@State mDirection:number=0
//mShape:Shimmer效果形状,默认0:直线,1:圆形
@State mShape:number=0
//mShape:Shimmer效果时长,默认1000毫秒
@State mDuration:number=1000
初始化:
aboutToAppear(){
//初始化Shimmer效果方向和形状
this.mShimmer.setDirection(this.mDirection)
this.mShimmer.setShape(this.mShape)
this.mShimmer.setDuration(this.mDuration)
this.mShimmer.setRepeatDelay(500)
}
自定义组件:
@Builder MyCanvas(){
Column(){
Canvas(this.renderingContext)
.width('100%')
.height('100%')
.backgroundImage('image/sBackground.jpeg')
.borderRadius(10)
}.width('100%')
.height(200)
}
//自定义MyButton
/*
*参数
* txt:string,Button上显示的文字
* flag:boolean,true:点击了改变效果方向按钮,false:点击了改变效果形状按钮
*/
@Builder MyButton(txt:string,flag:boolean){
Button(txt)
.fontSize(20)
.fontWeight(FontWeight.Bold)
.type(ButtonType.Normal)
.borderRadius(10)
.padding({left:20,right:20,top:10,bottom:10})
.onClick(()=>{
if(flag){
this.mDirection++
console.info('MyTag -------------mDirection='+this.mDirection)
this.mDirection=this.mDirection%4
console.info('MyTag ***********mDirection='+this.mDirection)
}
else{
this.mShape++
console.info('MyTag ***********mShape='+this.mShape)
this.mShape=this.mShape%2
console.info('MyTag ***********mShape='+this.mShape)
}
this.mShimmer.setDirection(this.mDirection)
this.mShimmer.setShape(this.mShape)
})
}
调用shimmer效果
//Shimmer效果
ShimmerElement({mShimmer:this.mShimmer,content:this.MyCanvas})
.margin(10)
.borderRadius(10)
.opacity(0.4)
调用MyButton改变效果方向、形状代码:
Row({space:15}){
this.MyButton('改变效果方向',true)
this.MyButton('改变效果形状',false)
}.margin({top:10,bottom:10})
Slider组件改变效果时长代码:
Slider({
style:SliderStyle.InSet,
step:100,
max:5000,
min:0,
value:this.mDuration
})
.showTips(true)
.blockColor(Color.White)
.trackColor(Color.Gray)
.selectedColor(Color.Blue)
.trackThickness(20)
.onChange((value:number,mode:SliderChangeMode)=>{
this.mDuration=value
this.mShimmer.setDuration(this.mDuration)
})
四、总结
本项目相对简单,主要是熟悉本地库及网络三方库的使用方法,不涉及到很多的组件应用,官方示例的三方库不是最新版本了,希望能够及时更新,同时也希望三方库能够更多更完善一些,尤其是使用方法能更详细一些。
更多关于HarmonyOS 鸿蒙Next 线上Codelabs系列挑战赛第二期 调用三方库之shimmer的实战教程也可以访问 https://www.itying.com/category-93-b0.html
针对帖子标题“HarmonyOS 鸿蒙Next 线上Codelabs系列挑战赛第二期 调用三方库之shimmer”的问题,以下是专业且简洁的回答:
在HarmonyOS鸿蒙系统中调用第三方库shimmer,首先需要确保该库支持HarmonyOS平台。由于HarmonyOS采用ArkTS(Ark TypeScript)作为主要开发语言之一,以及支持部分JavaScript API,因此调用方式可能与传统Android或iOS有所不同。
-
查找兼容版本:首先,在shimmer库的官方文档或GitHub仓库中查找是否有针对HarmonyOS的兼容版本或说明。
-
引入库文件:如果找到兼容版本,按照文档说明将库文件(如.js、.ets或相应的模块包)引入到你的HarmonyOS项目中。
-
使用shimmer:在ArkTS或JavaScript代码中,按照shimmer库的API文档调用相应功能。这通常涉及创建shimmer实例、配置参数以及将其添加到UI布局中。
-
测试与调试:在DevEco Studio中运行你的项目,测试shimmer效果是否正常显示。如有必要,使用调试工具查看日志并调整代码。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html,