HarmonyOS 鸿蒙Next整个app添加水印

HarmonyOS 鸿蒙Next整个app添加水印 怎么给整个app添加水印

2 回复

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

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,否则正常组件无法响应事件
}

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())
  }
}

更多关于HarmonyOS 鸿蒙Next整个app添加水印的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS(鸿蒙)系统中为整个App添加水印,可以通过以下方式实现,这通常涉及到自定义View或者Canvas绘图操作:

  1. 自定义View实现水印

    • 创建一个自定义的View类,重写其onDraw方法。
    • onDraw方法中,使用Canvas的drawTextdrawBitmap方法绘制水印内容。
    • 将此自定义View作为背景或覆盖层添加到你的Activity或Fragment布局中。
  2. 使用FrameLayout添加水印层

    • 在你的布局XML文件中,使用FrameLayout作为根布局。
    • 在FrameLayout中添加一个透明的View(如ImageView或TextView),用于显示水印。
    • 设置该View的布局参数(如android:layout_width="match_parent"android:layout_height="match_parent")以确保其覆盖整个屏幕。
    • 在Activity或Fragment中设置水印内容。
  3. 动态添加水印到现有View

    • 遍历Activity或Fragment中的所有View,对每个View进行包装或在其上绘制水印(这通常更复杂,且可能影响性能)。

请根据你的具体需求选择合适的方法实现。如果需要在多个Activity或Fragment中统一添加水印,可以考虑创建一个BaseActivity或BaseFragment,并在其中实现水印逻辑。

如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html

回到顶部