Skip to content

Watermark 水印

介绍

在页面上添加特定的文字或图案作为水印,可用于防止信息盗用。

引入

ts
import { IBestWatermark } from "@ibestservices/ibest-ui";
ts
// 事例通用代码
@Builder content() {
  Column({space: 20}) {
    Text("一个轻量、简单易用、可定制主题、支持深色模式和浅色模式的鸿蒙开源UI组件库。")
    IBestButton({
      type: "primary",
      text: "打开弹框",
      onBtnClick: () => {
        IBestToast.show("点击了按钮")
      }
    })
  }
  .width("100%")
  .height(200)
  .padding(20)
  .justifyContent(FlexAlign.Center)
}

文字水印

文字水印

TIP

通过 text 属性来设置水印的文字。

点我查看代码
ts
@Entry
@Component
struct DemoPage {
  build() {
    Column(){
      IBestWatermark({
        text: 'IBest-UI',
        gapX: 40,
        gapY: 40
      }) {
        this.content()
      }
    }
  }
}

图片水印

图片水印

TIP

通过 imageUrl 属性来设置水印的图片。

点我查看代码
ts
@Entry
@Component
struct DemoPage {
  build() {
    Column({space: 20}){
      IBestWatermark({
        imageUrl: $r("app.media.app_icon"), // 替换为自己项目本地图片
        waterMarkWidth: 40,
        waterMarkHeight: 40,
        gapX: 40,
        gapY: 40,
        rotateDeg: 0
      }) {
        this.content()
      }
      IBestWatermark({
        imageUrl: 'https://fastly.jsdelivr.net/npm/@vant/assets/logo.png',
        waterMarkWidth: 40,
        waterMarkHeight: 40,
        gapX: 40,
        gapY: 40,
        rotateDeg: 30
      }) {
        this.content()
      }
    }
  }
}

自定义间隔

自定义间隔

TIP

通过 gapXgapY 属性来控制多个重复水印之间的间隔。

点我查看代码
ts
@Entry
@Component
struct DemoPage {
  build() {
    Column(){
      IBestWatermark({
        text: 'IBest-UI',
        gapX: 80,
        gapY: 80
      }) {
        this.content()
      }
    }
  }
}

自定义倾斜角度

自定义倾斜角度

TIP

通过 rotateDeg 属性来控制水印的倾斜角度,默认值为 -22

点我查看代码
ts
@Entry
@Component
struct DemoPage {
  build() {
    Column(){
      IBestWatermark({
        text: 'IBest-UI',
        gapX: 20,
        gapY: 20,
        rotateDeg: 0
      }) {
        this.content()
      }
    }
  }
}

自定义层级

自定义倾斜角度

TIP

通过 waterMarkZIndex 属性来控制水印的层级,以禁止内容的交互。

点我查看代码
ts
@Entry
@Component
struct DemoPage {
  build() {
    Column(){
      IBestWatermark({
        text: 'IBest-UI',
        gapX: 40,
        gapY: 40,
        waterMarkZIndex: 1
      }) {
        this.content()
      }
    }
  }
}

API

@Props

参数说明类型默认值
waterMarkWidth单个图片水印的宽度(文字水印可忽略该参数)number100
waterMarkHeight单个图片水印的高度(文字水印可忽略该参数)number100
waterMarkOpacity水印的透明度 0~1number0.3
gapX水印之间的水平间隔number0
gapY水印之间的垂直间隔number0
rotateDeg水印的旋转角度number-22
imageUrl水印的图片链接string''
text文字水印的内容(文字水印优先级高于图片水印,如果同时传了textimageUrl那么显示的将会是text的内容)ResourceStr''
fontSize文字水印的大小number14
fontFamily文字字体stringsans-serif
fontColor文字颜色string | number | CanvasGradient | CanvasPattern
#000000
waterMarkZIndex水印的 z-indexnumber-1
bgColor背景色ResourceColor#fff

插槽

插槽名说明类型
defaultBuilder水印包裹的内容CustomBuilder