HarmonyOS 如何在app内全页面添加水印

HarmonyOS
2024-12-25 13:11:17
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
zxjiu

目前没有统一处理全局水印的方式,可以把水印样式定义成公共组件,可参考如下代码:

1、定义全局的水印组件。

@Entry
@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,否则正常组件无法响应事件
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.

2、基于水印组件定义一个export的custombuilder,以供全局使用。

@Builder
export function createWaterMark() {
  WaterMarkComponent()
    .hitTestBehavior(HitTestMode.None) // 必须设置其触摸测试为None或Transparent,否则正常组件无法响应事件
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

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())
  }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
分享
微博
QQ
微信
回复
2024-12-25 15:18:04
相关问题
HarmonyOS 如何app 添加水印
1238浏览 • 1回复 待解决
如何使用canvas添加水印
2335浏览 • 1回复 待解决
HarmonyOS拍照后图片添加水印
699浏览 • 1回复 待解决
HarmonyOS是否支持图片添加水印
1018浏览 • 1回复 待解决
HarmonyOS windows级别添加水印
660浏览 • 1回复 待解决
HarmonyOS PDF添加水印后展示白屏
716浏览 • 1回复 待解决
HarmonyOS 有没有对UI添加水印的方法
706浏览 • 1回复 待解决
HarmonyOS 拍照后的图片加水印
703浏览 • 1回复 待解决
基于原生的水印添加能力
1767浏览 • 1回复 待解决
HarmonyOS APP内有水印功能,如何实现?
1108浏览 • 0回复 待解决
HarmonyOS app全局水印怎么实现
564浏览 • 1回复 待解决
HarmonyOS 水印相机、水印视频
1042浏览 • 1回复 待解决
HarmonyOS 应用添加桌面组件
825浏览 • 1回复 待解决
HarmonyOS app如何禁用深色模式?
932浏览 • 1回复 待解决
HarmonyOS 如何实现APP全局弹窗
1230浏览 • 1回复 待解决