HarmonyOS 鸿蒙Next 如何给windows添加全局水印并通过appstorage设置内容和管理开关?
HarmonyOS 鸿蒙Next 如何给windows添加全局水印并通过appstorage设置内容和管理开关?
目前没有统一处理全局水印的方式,可以把水印样式定义成公共组件,可参考如下代码:
1、定义全局的水印组件
[@Entry](/user/Entry) [@Component](/user/Component) export struct WaterMarkComponent { build() { Column({ space: 10 }) { Text(“TestMark”) .fontSize(50) .fontColor(Color.Gray) } .width(‘100%’) .height(‘100%’) .backgroundColor("#51aaaaaa") .justifyContent(FlexAlign.Center) } }
@Builder export function createWaterMark() { WaterMarkComponent() .hitTestBehavior(HitTestMode.None) // 必须设置其触摸测试为None或Transparent,否则正常组件无法响应事件 }
2、基于水印组件定义一个export的custombuilder,以供全局使用
@Builder
export function createWaterMark() {
WaterMarkComponent()
.hitTestBehavior(HitTestMode.None) // 必须设置其触摸测试为None或Transparent,否则正常组件无法响应事件
}
3、在需要加水印页面的根节点上添加.overlay属性,并使用上述的custombuilder
import { promptAction } from ‘@kit.ArkUI’ import { createWaterMark } from ‘…/components/watermark’;
@Entry @Component struct TestMarkDemo { build() { Row() { Column() { Text(“click”) .fontSize(50) .fontWeight(FontWeight.Bold) .onClick(() => { // 测试对正常事件的响应 promptAction.showToast({ message: “test” }) }) } .width(‘100%’) } .height(‘100%’) .overlay(createWaterMark()) } }
另外可以通过用户首选项实现数据持久化,可参考以下文档:
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/data-persistence-by-preferences-V5
更多关于HarmonyOS 鸿蒙Next 如何给windows添加全局水印并通过appstorage设置内容和管理开关?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS 鸿蒙Next中,为windows(通常指应用窗口或界面)添加全局水印并通过AppStorage设置内容和管理开关,可以按照以下步骤操作:
- 创建水印组件:使用Canvas绘制水印文字,并设置为透明背景。该组件应包含水印的显示逻辑,如是否显示及水印内容。
- 使用AppStorage:通过AppStorage存储水印的显示状态和内容。利用
@StorageProp
或@StorageLink
装饰器实现数据的全局存储与同步。 - 在主页面或根页面引入水印组件:通过Stack组件或其他布局方式,将水印组件叠加在页面背景上。
- 实现水印的显示状态和内容管理:在应用初始化时设置水印的默认状态和内容,并在需要时通过AppStorage的API更新这些值。
通过上述步骤,可以实现在HarmonyOS 鸿蒙Next中为windows添加全局水印,并通过AppStorage设置内容和管理开关的功能。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。