HarmonyOS app全局水印怎么实现

我们这里有全局水印,之前是用subWindow实现的,但是使用subWindow时,存在router跳转到subWindow的情况,但是我们引用的三方库很多逻辑都是使用router.push的方式跳转页面,我们无法修改,所以想问问除了subWindow,还有其他方式能实现全局水印吗

HarmonyOS
2天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
aquaa

可参考如下代码,把水印写成一个单独的公共组件,通过容器的overlay属性来使用

@Entry
@Component
struct WaterMark {
  private settings: RenderingContextSettings = new RenderingContextSettings(true)
  private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings)

  @Builder
  Watermark() {
    Canvas(this.context)
      .width("100%")
      .height("100%")
      .hitTestBehavior(HitTestMode.Transparent)
      .onReady(() => {
        this.context.fillStyle = '#10000000'
        this.context.font = "16vp"
        this.context.textAlign = "center"
        this.context.textBaseline = "middle"
        // 在这里绘制文字水印,也可以是图片水印
        for (let i = 0; i < this.context.width / 120; i++) {
          this.context.translate(120, 0)
          let j = 0
          for (; j < this.context.height / 120; j++) {
            this.context.rotate(-Math.PI / 180 * 30)
            // 此处水印数据是写死的,具体请替换为自己的水印
            this.context.fillText("水印水印水印", -60, -60)
            this.context.rotate(Math.PI / 180 * 30)
            this.context.translate(0, 120)

          }
          this.context.translate(0, -120 * j)
        }
      })
  }

  build() {
    Column() {
      Text("正文文字").fontColor("#495057")
      Image($r("app.media.testImage")).width(300)
    }
    .layoutWeight(1)
    .overlay(this.Watermark())
    .width("100%")
  }
}
分享
微博
QQ
微信
回复
2天前
相关问题
HarmonyOS 如何使用全局水印
106浏览 • 1回复 待解决
HarmonyOS 如何实现APP全局弹窗
602浏览 • 1回复 待解决
HarmonyOS 怎么实现全局变量
85浏览 • 1回复 待解决
HarmonyOS 如何给 app 添加水印
579浏览 • 1回复 待解决
HarmonyOS 绘制水印如何实现
296浏览 • 1回复 待解决
HarmonyOS 水印相机、水印视频
176浏览 • 1回复 待解决
canvas如何实现水印效果
1114浏览 • 1回复 待解决
如何实现 app 内置全局悬浮球功能?
2133浏览 • 1回复 待解决
HarmonyOS 如何在app内全页面添加水印
161浏览 • 1回复 待解决
HarmonyOS 跳转邮件App怎么实现
174浏览 • 1回复 待解决
HarmonyOS 全局样式怎么创建?
412浏览 • 1回复 待解决
如何实现全局dialog?
555浏览 • 1回复 待解决
HarmonyOS 背景水印问题
444浏览 • 1回复 待解决
HarmonyOS 如何实现全局弹框
291浏览 • 1回复 待解决
HarmonyOS 全局loading的实现方案
20浏览 • 1回复 待解决
全局关闭弹窗如何实现
485浏览 • 2回复 待解决
HarmonyOS 如何实现全局页面置灰
124浏览 • 1回复 待解决
HarmonyOS 全局loading的菊花如何实现
520浏览 • 1回复 待解决