当前位置: 首页 > article >正文

鸿蒙UI开发——隐私遮罩效果

1、概 述

如果我们希望对某些文字或图片做隐私遮罩处理,ArkUI为组件提供了一个属性可以方便的实现此效果,效果类似如下:

图片

2、具体使用

我们在实现组件时,可以为组件添加obscured属性,用于为该属性设置隐私遮罩,接口定义如下:

// 设置组件内容的遮罩类型。obscured(reasons: Array<ObscuredReasons>)

入参ObscuredReasons是一个枚举,目前只有一个值,如下:

PLACEHOLDER // 显示的数据为通用占位符。

需要注意:

  • 目前支持的组件类型只有:Text文本组件、Image图片显示组件。

  • 在为Image组件设置隐私遮罩时,最好设置一个默认宽高,因为如果图片是异步加载的,在图片加载完成前,如果没有默认宽高,会导致遮罩没有宽高信息。

  • 如果Text组件设置了属性字符串,则隐私遮罩不生效(后续会有例子介绍)。

3、示例

👉🏻 step1:我们创建一个基本文本组件和图片显示组件,代码如下:​​​​​​​

@Entry@Componentstruct ObscuredExample {  build() {    Row() {      Column() {        Text('欢迎加入【Harmony自习室】')          .fontSize(30)          .width(300)          .fontColor(Color.Black)          .border({ width: 1 })        Image($r('app.media.send_heart'))          .width('200px')          .height('200px')      }      .width('100%')    }    .height('100%')  }}

效果如下:

图片

👉🏻 step2:我们为刚刚创建的文本组件与图片组件添加隐私遮罩(12、16行)​​​​​​​

@Entry@Componentstruct ObscuredExample {  build() {    Row() {      Column() {        Text('欢迎加入【Harmony自习室】')          .fontSize(30)          .width(300)          .fontColor(Color.Black)          .border({ width: 1 })          .obscured([ObscuredReasons.PLACEHOLDER])        Image($r('app.media.send_heart'))          .width('200px')          .height('200px')          .obscured([ObscuredReasons.PLACEHOLDER])      }      .width('100%')    }    .height('100%')  }}

效果如下:

图片

如果我们为Text组件设置了属性字符串,将不会生效隐私遮罩,代码如下:​​​​​​​

@Entry@Componentstruct ObscuredExample {  fontStyle1: StyledString = new StyledString("欢迎加入【Harmony自习室】");  controller1: TextController = new TextController();  async onPageShow() {    this.controller1.setStyledString(this.fontStyle1)  }  build() {    Row() {      Column() {        // 显示属性字符串        Text(undefined, { controller: this.controller1 })          .obscured([ObscuredReasons.PLACEHOLDER])      }      .width('100%')    }    .height('100%')  }}

效果如下:

图片


http://www.kler.cn/a/550995.html

相关文章:

  • 百度百舸 DeepSeek 一体机发布,支持昆仑芯 P800 单机 8 卡满血版开箱即用
  • Springboot RabbitMQ 消费失败消息清洗与重试机制
  • 【Python网络爬虫】爬取网站图片实战
  • 智能马达保护器:为工业电机安全运行保驾护航
  • 《解锁自然语言处理:让公众正确拥抱AI语言魔法》
  • Natural Language Processing NLP
  • STM32外设SPI FLASH应用实例
  • STM32 低功耗模式
  • 【前端学习笔记】Webpack
  • Letsencrypt+certbot为域名免费配置ssl
  • 【漫话机器学习系列】095.决策边界(Decision Boundary)
  • 静态页面在安卓端可以正常显示,但是在ios打开这个页面就需要刷新才能显示全图片
  • HTTP 和 TCP/IP-傻傻分不清
  • C#之上位机开发---------C#通信库及WPF的简单实践
  • mysql 使用 CONCAT、GROUP_CONCAT 嵌套查询出 json 格式数据
  • 瑞萨RA-T系列芯片ADCGPT功能模块的配合使用
  • Linux:基础IO(三.软硬链接、动态库和静态库、动精态库的制作和加载)
  • Linux csplit 命令实现日志文件的拆分
  • yolov5-seg分割后处理流程
  • DeepSeek 开放平台无法充值 改用其他平台API调用DeepSeek-chat模型方法