OpenHarmony开发实战:引导组件规范总结

介绍

基于OpenHarmony的高亮型新手引导组件,通过高亮区域与蒙版背景的明暗度对比,使用户快速锁定重点功能,快速掌握应用基本使用方法。

下载安装

1.安装

ohpm install @ohos/high_light_guide

OpenHarmony ohpm 环境配置等更多内容,请参考如何安装 OpenHarmony ohpm 包 。

2.在需要使用的页面导入引导页组件,如Index.ets:

import { HighLightGuideBuilder,HighLightGuideComponent,Controller,GuidePage,HighLightShape,RectF} from '@ohos/high_light_guide'

使用说明

// 引入引导页
import { Controller, GuidePage, HighLightGuideBuilder, HighLightGuideComponent, RectF } from '@ohos/high_light_guide'

private builder: HighLightGuideBuilder | null = null;
private controller: Controller | null = null;

// 初始化引导页构建类
aboutToAppear() {
  this.builder = new HighLightGuideBuilder()
    .setLabel('guide1')
    .alwaysShow(true)
    .addGuidePage(GuidePage.newInstance()
      .addHighLight('Simple')
      .addHighLight(new RectF(0, 310, 200, 360))
      .setHighLightIndicator(this.SimpleIndicator))
}

build() {
  Column() {
    Stack() {
    
      // 添加引导页布局
      HighLightGuideComponent({
        highLightContainer: this.HighLightComponent, // 引导页覆盖时的内容布局插槽
        currentHLIndicator: null, // 引导页的引导层插槽
        builder: this.builder, // 引导页的通用配置构建类
        onReady: (controller: Controller) => { // 引导页准备好的回调,获取引导页控制器
          this.controller = controller; 
        }
      })
    }
  }
  .width('100%')
}

@Builder
private HighLightComponent() {
  Column() {
    ... // 布局内容
  }.alignItems(HorizontalAlign.Start)
  .width('100%')
  .height('100%');
}

@Builder
private SimpleIndicator() {
  ... // 引导层内容
}

接口说明

HighLightGuideBuilder

引导页组件的通用配置项构建类。

setLabel

public setLabel(label: string): HighLightGuideBuilder;

为引导页设置label标签,用于保存引导页的已显示次数。

参数:

参数名类型必填说明
labelstring引导页的标签名称。

返回值:

类型说明
HighLightGuideBuilder引导页通用配置项的构建类。

setShowCounts

public setShowCounts(count: number): HighLightGuideBuilder;

配合引导页label标签,限制引导页组件的显示次数,显示次数需要设置为正整数,alwaysShow为true时失效。

参数

参数名类型必填说明
countnumber引导页的显示次数。

返回值:

类型说明
HighLightGuideBuilder引导页通用配置项的构建类。

alwaysShow

public alwaysShow(isAlways: boolean): HighLightGuideBuilder;

设置组件是否永久显示,优先级高于setShowCounts方法,设置为true时,setShowCounts方法失效。

参数名类型必填说明
isAlwaysboolean引导页是否永久显示。

返回值:

类型说明
HighLightGuideBuilder引导页通用配置项的构建类。

addGuidePage

public addGuidePage(page: GuidePage): HighLightGuideBuilder;

为引导页组件添加引导页配置。

参数名类型必填说明
pageGuidePage引导页配置。

返回值:

类型说明
HighLightGuideBuilder引导页通用配置项的构建类。

setOnGuideChangedListener

public setOnGuideChangedListener(listener: OnGuideChangedListener | null): HighLightGuideBuilder;

为引导页组件添加显示/移除监听。

参数:

参数名类型必填说明
listenerOnGuideChangedListener | null引导页的显示状态监听器。

OnGuideChangedListener

方法名参数说明
onShowedcontroller:Controller引导页显示
onRemovedcontroller:Controller引导页移除

返回值:

类型说明
HighLightGuideBuilder引导页通用配置项的构建类。

setOnPageChangedListener

public setOnPageChangedListener(listener: OnPageChangedListener | null): HighLightGuideBuilder;

为引导页组件添加引导页页面切换监听。

参数:

参数名类型必填说明
listenerOnPageChangedListener | null引导页的页面切换监听器。

OnPageChangedListener

方法名参数说明
onPageChangedpageIndex: number引导页当前显示的页面index。

返回值:

类型说明
HighLightGuideBuilder引导页通用配置项的构建类。

GuidePage

引导页页面配置项构建类。

newInstance

public static newInstance(): GuidePage;

获取引导页的实例。

返回值:

类型说明
GuidePage引导页页面配置项构建类实例。

addHighLight

public addHighLight(componentId: string): GuidePage;

添加高亮组件(componentId需要整个应用内唯一),默认高亮区域为矩形。

参数:

参数名类型必填说明
componentIdstring高亮组件的唯一id。

返回值:

类型说明
GuidePage引导页页面配置项构建类实例。

addHighLight

public addHighLight(componentId: string, shape: HighLightShape): GuidePage;

添加高亮组件(componentId需要整个应用内唯一),支持设置高亮区域形状,默认形状为矩形。

参数:

参数名类型必填说明
componentIdstring高亮组件的唯一id。
shapeHighLightShape高亮区域的形状。

返回值:

类型说明
GuidePage引导页页面配置项构建类实例。

addHighLight

public addHighLight(componentId: string, shape: HighLightShape, padding: number): GuidePage;

添加高亮组件(componentId需要整个应用内唯一),支持设置高亮区域形状,默认形状为矩形,支持设置组件padding。

参数:

参数名类型必填说明
componentIdstring高亮组件的唯一id。
shapeHighLightShape高亮区域的形状。
paddingnumber高亮区域距离组件实际坐标的边距。

返回值:

类型说明
GuidePage引导页页面配置项构建类实例。

addHighLight

public addHighLight(componentId: string, shape: HighLightShape, round: number, padding: number): GuidePage;

添加高亮组件(componentId需要整个应用内唯一),支持设置高亮区域形状,默认形状为矩形,支持设置组件的圆角弧度(仅在shape=HighLightShape.ROUND_RECTANGLE时有效),支持设置组件padding。

参数:

参数名类型必填说明
componentIdstring高亮组件的唯一id。
shapeHighLightShape高亮区域的形状。
roundnumber圆角矩形的圆角弧度。
paddingnumber高亮区域边缘距离组件实际坐标的边距。

返回值:

类型说明
GuidePage引导页页面配置项构建类实例。

addHighLight

public addHighLight(rectF: RectF): GuidePage;

添加指定高亮区域,默认高亮区域为矩形。

参数:

参数名类型必填说明
rectFRectF指定高亮区域。

返回值:

类型说明
GuidePage引导页页面配置项构建类实例。

addHighLight

public addHighLight(rectF: RectF, shape: HighLightShape): GuidePage;

添加指定高亮区域,支持设置高亮区域形状,默认形状为矩形。

参数名类型必填说明
rectFRectF指定高亮区域。
shapeHighLightShape高亮区域的形状。

返回值:

类型说明
GuidePage引导页页面配置项构建类实例。

addHighLight

public addHighLight(rectF: RectF, shape: HighLightShape, round: number): GuidePage;

添加指定高亮区域,支持设置高亮区域形状,默认形状为矩形,支持设置组件的圆角弧度(仅在shape=HighLightShape.ROUND_RECTANGLE时有效)。

参数:

参数名类型必填说明
rectFRectF指定高亮区域。
shapeHighLightShape高亮区域的形状。
roundnumber圆角矩形的圆角弧度。

返回值:

类型说明
GuidePage引导页页面配置项构建类实例。

addHighLightWithOptions

public addHighLightWithOptions(componentId: string, options: HighLightOptions): GuidePage;

添加高亮组件(componentId需要整个应用内唯一),默认高亮区域为矩形,支持设置高亮区域的额外配置,包括高亮区域的点击事件,重绘高亮图形,每次显示引导页时更新组件的位置。

参数:

参数名类型必填说明
componentIdstring高亮组件的唯一id。
optionsHighLightOptions高亮区域的额外配置。

返回值:

类型说明
GuidePage引导页页面配置项构建类实例。

addHighLightWithOptions

public addHighLightWithOptions(componentId: string, shape: HighLightShape, options: HighLightOptions): GuidePage;

添加高亮组件(componentId需要整个应用内唯一),支持设置高亮区域形状,默认形状为矩形,支持设置高亮区域的额外配置,包括高亮区域的点击事件,重绘高亮图形,每次显示引导页时更新组件的位置。

参数:

参数名类型必填说明
componentIdstring高亮组件的唯一id。
shapeHighLightShape高亮区域的形状。
optionsHighLightOptions高亮区域的额外配置。

返回值:

类型说明
GuidePage引导页页面配置项构建类实例。

addHighLightWithOptions

public addHighLightWithOptions(componentId: string, shape: HighLightShape, round: number, padding: number, options: HighLightOptions): GuidePage;

添加高亮组件(componentId需要整个应用内唯一),支持设置高亮区域形状,默认形状为矩形,支持设置组件的圆角弧度(仅在shape=HighLightShape.ROUND_RECTANGLE时有效),支持设置组件padding,支持设置高亮区域的额外配置,包括高亮区域的点击事件,重绘高亮图形,每次显示引导页时更新组件的位置。

参数:

参数名类型必填说明
componentIdstring高亮组件的唯一id。
shapeHighLightShape高亮区域的形状。
roundnumber圆角矩形的圆角弧度。
paddingnumber高亮区域边缘距离组件实际坐标的边距。
optionsHighLightOptions高亮区域的额外配置。

返回值:

类型说明
GuidePage引导页页面配置项构建类实例。

addHighLight

public addHighLightWithOptions(rectF: RectF, options: HighLightOptions): GuidePage;

添加指定高亮区域,默认高亮区域为矩形,支持设置高亮区域的额外配置,包括高亮区域的点击事件,重绘高亮图形,每次显示引导页时更新组件的位置。

参数:

参数名类型必填说明
rectFRectF指定高亮区域。
optionsHighLightOptions高亮区域的额外配置。

返回值:

类型说明
GuidePage引导页页面配置项构建类实例。

addHighLight

public addHighLightWithOptions(rectF: RectF, shape: HighLightShape, options: HighLightOptions): GuidePage;

添加指定高亮区域,支持设置高亮区域形状,默认形状为矩形,支持设置高亮区域的额外配置,包括高亮区域的点击事件,重绘高亮图形,每次显示引导页时更新组件的位置。

参数:

参数名类型必填说明
rectFRectF指定高亮区域。
shapeHighLightShape高亮区域的形状。
optionsHighLightOptions高亮区域的额外配置。

返回值:

类型说明
GuidePage引导页页面配置项构建类实例。

addHighLight

public addHighLightWithOptions(rectF: RectF, shape: HighLightShape, round: number, options: HighLightOptions): GuidePage;

添加指定高亮区域,支持设置高亮区域形状,默认形状为矩形,支持设置组件的圆角弧度(仅在shape=HighLightShape.ROUND_RECTANGLE时有效),支持设置高亮区域的额外配置,包括高亮区域的点击事件,重绘高亮图形,每次显示引导页时更新组件的位置。

参数:

参数名类型必填说明
rectFRectF指定高亮区域。
shapeHighLightShape高亮区域的形状。
roundnumber圆角矩形的圆角弧度。
optionsHighLightOptions高亮区域的额外配置。

返回值:

类型说明
GuidePage引导页页面配置项构建类实例。

setBackgroundColor

public setBackgroundColor(backgroundColor: string): GuidePage;

为引导页页面添加蒙版背景色,默认颜色为#b2000000。

参数:

参数名类型必填说明
backgroundColorstring引导页的蒙版背景色。

返回值:

类型说明
GuidePage引导页页面配置项构建类实例。

getBackgroundColor

public getBackgroundColor(): string;

获取引导页页面的蒙版背景色,默认颜色为#b2000000。

返回值:

类型说明
string引导页页面的蒙版背景色。

setEnterAnimation

public setEnterAnimation(enterAnimation: AnimatorOptions | null): GuidePage;

为引导页页面添加进入动画,当前仅支持透明度动画。

参数:

参数名类型必填说明
enterAnimationAnimatorOptions | null引导页页面的进入动画。

返回值:

类型说明
GuidePage引导页页面配置项构建类实例。

getEnterAnimation

public getEnterAnimation(): AnimatorOptions | null;

获取引导页页面的进入动画。

返回值:

类型说明
AnimatorOptions | null引导页的进入动画。

setExitAnimation

public setExitAnimation(exitAnimation: AnimatorOptions | null): GuidePage;

为引导页页面添加退出动画,当前仅支持透明度动画。

参数:

参数名类型必填说明
exitAnimationAnimatorOptions | null引导页页面的退出动画。

返回值:

类型说明
GuidePage引导页页面配置项构建类实例。

getExitAnimation

public getExitAnimation(): AnimatorOptions | null;

获取引导页页面的退出动画。

返回值:

类型说明
AnimatorOptions | null引导页的退出动画。

setEverywhereCancelable

public setEverywhereCancelable(everywhereCancelable: boolean): GuidePage;

是否支持点击引导页任意位置进入下一个引导页,如果没有下一引导页,则移除引导页。

参数:

参数名类型必填说明
everywhereCancelableboolean是否支持点击引导页任意位置进入下一个引导页。

返回值:

类型说明
GuidePage引导页页面配置项构建类实例。

isEverywhereCancelable

public isEverywhereCancelable(): boolean;

获取是否支持点击引导页任意位置进入下一个引导页。

返回值:

类型说明
boolean是否支持点击引导页任意位置进入下一个引导页。

isEmpty

public isEmpty(): boolean;

当前引导页组件是否为空,即引导页页数是否为0。

返回值:

类型说明
boolean当前引导页组件是否为空。

getHighLights

public getHighLights(): HighLight[];

获取引导页高亮区域的属性信息。

返回值:

类型说明
HighLight[]引导页高亮区域的属性信息。

setHighLightIndicator

public setHighLightIndicator(indicator: Function | null): GuidePage;

设置引导页的引导层,引导层布局需要为@Builder注解标准的布局函数。

参数:

参数名类型必填说明
indicatorFunction | null当前引导页的引导层布局函数。

返回值:

类型说明
GuidePage引导页页面配置项构建类实例。

getHighLightIndicator

public getHighLightIndicator(): Function | null;

获取引导页的引导层布局,引导层布局需要为@Builder注解标注的布局函数。

返回值:

类型说明
Function | null当前引导页的引导层布局函数。

Controller

引导页组件的控制器。

show

public show(): void;

显示引导页。

showPage

public showPage(position: number): void;

显示指定引导页,postion从0开始。

参数:

参数名类型必填说明
positionnumber引导页的index。

showPreviewPage

public showPreviewPage(): void;

显示上一引导页。

remove

public remove(): void;

移除引导页。

isShowing

public isShowing(): boolean;

指示引导页是否正在显示。

返回值:

类型说明
boolean指示引导页是否正在显示。

isAnimationRunning

public isAnimationRunning(): boolean;

指示引导页是否有动画正在运行。

返回值:

类型说明
boolean指示引导页是否有动画正在运行。

resetLabel

public resetLabel(): void;

重置当前引导页的已显示次数为0。

resetLabel

public resetLabel(label: string): void;

重置指定标签名称的引导页的已显示次数为0。

参数:

参数名类型必填说明
labelstring引导页标签。

HighLightShape

高亮区域的形状类型。

类型说明
CIRCLE圆形
RECTANGLE矩形
OVAL椭圆
ROUND_RECTANGLE圆角矩形

RectF

矩形区域对象。

构造函数

constructor(rect: RectF);

根据指定RectF对象创建

constructor(left: number, top: number, right: number, bottom: number);

根据坐标创建RectF对象。

参数:

参数名类型必填说明
leftnumber矩形区域左上角的X坐标。
topnumber矩形区域左上角的Y坐标。
rightnumber矩形区域右下角的X坐标。
bottomnumber矩形区域右下角的Y坐标。

getCenterX

public getCenterX(): number;

获取矩形区域的中心点X坐标。

返回值:

类型说明
number矩形区域的中心点X坐标。

getCenterY

public getCenterY(): number;

获取矩形区域的中心点Y坐标。

返回值:

类型说明
number矩形区域的中心点Y坐标。

getWidth

public getWidth(): number;

获取矩形区域的宽。

返回值:

类型说明
number矩形区域的宽。

getHeight

public getHeight(): number;

获取矩形区域的高。

返回值:

类型说明
number矩形区域的高。

HighLightOptionsBuilder

高亮区域的额外配置构建类。

setOnClickListener

public setOnClickListener(listener: OnClickListener | null): HighLightOptionsBuilder;

参数:

参数名类型必填说明
listenerOnClickListener | nulll高亮区域的点击事件。

OnClickListener

方法名参数说明
onClickNA高亮区域的点击事件。

返回值:

类型说明
HighLightOptionsBuilder高亮区域的额外配置构建类实例。

setOnHighLightDrewListener

public setOnHighLightDrewListener(listener: OnHighLightDrewListener | null): HighLightOptionsBuilder;

参数:

参数名类型必填说明
listenerOnHighLightDrewListener | nulll高亮区域的图形重绘事件。

OnHighLightDrewListener

方法名参数说明
onHighLightDrewcanvasContext2d: CanvasRenderingContext2D, rectF: RectF高亮区域的图形重绘事件。

返回值:

类型说明
HighLightOptionsBuilder高亮区域的额外配置构建类实例。

isFetchLocationEveryTime

public isFetchLocationEveryTime(isFetchLocation: boolean): HighLightOptionsBuilder;

是否每次显示引导页时更新组件的位置。

参数:

参数名类型必填说明
isFetchLocationboolean是否每次显示引导页时更新组件的位置。

返回值:

类型说明
HighLightOptionsBuilder高亮区域的额外配置构建类实例。

build

public build(): HighLightOptions ;

构建高亮区域的额外配置。

返回值:

类型说明
HighLightOptions高亮区域的额外配置类。

HighLightGuideComponent

引导页组件。

参数:

参数名类型必填说明
highLightContainer@Builder引导页组件的内容布局插槽。
currentHLIndicator@Builder|null引导页的引导层布局插槽
builderHighLightGuideBuilder引导页组件的通用配置项构建类
onReady(controller:Controller)=>void引导页准备好时的回调函数

注意点集锦

  1. 组件不支持焦点穿透事件。

  2. 组件label需要必传。

  3. 每个组件的id要全局(整个应用内)唯一。

  4. 每个组件设置的显示次数,应为正整数。

  5. RectF矩形区域设置的坐标要基于父组件的坐标,取相对坐标。

  6. RectF矩形区域的坐标,左上角的坐标要小于右下角的坐标。

  7. 目前仅支持透明度动画。

  8. padding参数只对高亮区域为带有id的组件有效。

  9. round参数只在shape=HighLightShape.ROUND_RECTANGLE时有效。

  10. alwaysShow的优先级高于showCounts。

  11. everywhereCancleable的优先级高于额外配置中的点击事件。

  12. HighLightDrewListener的优先级高于HighLightShape配置。

约束与限制

在下述版本验证通过: DevEco Studio: 4.1 Canary2(4.1.3.322), SDK: API11 (4.1.0.36) DevEco Studio: 4.0 Release(4.0.3.413), SDK: API10 (4.0.10.3)

目录结构

|---- ohos_highlightguide
|     |---- AppScrope  # 工程信息文件夹
|     |---- entry  # 示例代码文件夹
|     |---- library  # 引导页组件
|           |---- src/main  # 模块代码
|                |---- ets/highlightguide   # 模块代码
|                     |---- HighLightGuideComponent.ets # 高亮引导页对外暴漏组件
|                     |---- core # 高亮引导页组件控制器及通用配置构造类 
|                     |---- interface # 引导页组件的高亮区域点击事件监听、显示/移除监听、页面切换监听、高亮区域重绘监听
|                     |---- model # 用于构建高亮引导页组件的数据模型
|                     |---- util # 用于构建高亮引导页组件的坐标处理工具类
|           |---- index.ets          # 入口文件
|           |---- *.json5      # 配置文件
|     |---- README.md  # 安装使用方法
|     |---- README.OpenSource  # 开源说明
|     |---- CHANGELOG.md  # 更新日志

最后

有很多小伙伴不知道学习哪些鸿蒙开发技术?不知道需要重点掌握哪些鸿蒙应用开发知识点?但是又不知道从哪里下手,而且学习时频繁踩坑,最终浪费大量时间。所以本人整理了一些比较合适的鸿蒙(HarmonyOS NEXT)学习路径和一些资料的整理供小伙伴学习

点击领取→纯血鸿蒙Next全套最新学习资料希望这一份鸿蒙学习资料能够给大家带来帮助,有需要的小伙伴自行领取~~

一、鸿蒙(HarmonyOS NEXT)最新学习路线

有了路线图,怎么能没有学习资料呢,小编也准备了一份联合鸿蒙官方发布笔记整理收纳的一套系统性的鸿蒙(OpenHarmony )学习手册(共计1236页)与鸿蒙(OpenHarmony )开发入门教学视频,内容包含:(ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战等等)鸿蒙(HarmonyOS NEXT)…等技术知识点。

获取以上完整版高清学习路线,请点击→纯血版全套鸿蒙HarmonyOS学习资料

二、HarmonyOS Next 最新全套视频教程

三、《鸿蒙 (OpenHarmony)开发基础到实战手册》

OpenHarmony北向、南向开发环境搭建

四、大厂面试必问面试题

五、鸿蒙南向开发技术

六、鸿蒙APP开发必备


完整鸿蒙HarmonyOS学习资料,请点击→纯血版全套鸿蒙HarmonyOS学习资料

总结

总的来说,华为鸿蒙不再兼容安卓,对中年程序员来说是一个挑战,也是一个机会。只有积极应对变化,不断学习和提升自己,他们才能在这个变革的时代中立于不败之地。 

  • 19
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值