首页 > 其他分享 >鸿蒙HarmonyOS NEXT开发:形状裁剪(ArkTS通用属性)

鸿蒙HarmonyOS NEXT开发:形状裁剪(ArkTS通用属性)

时间:2024-08-09 17:27:41浏览次数:10  
标签:遮罩 ArkTS width 280px NEXT HarmonyOS API 参数 ArkUI

形状裁剪

用于对组件进行裁剪、遮罩处理。

说明:

从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。

clip12+

clip(value: boolean)

是否对当前组件进行裁剪。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

参数名类型必填说明
valueboolean参数为boolean类型,设置是否按照父容器边缘轮廓进行裁剪。
默认值:false

clip(deprecated)

clip(value: boolean | CircleAttribute | EllipseAttribute | PathAttribute | RectAttribute)

按指定的形状对当前组件进行裁剪。

说明:

从API version 7开始支持,从API version 12开始废弃。建议使用clipclipShape替代。

卡片能力: 从API version 9开始,该接口支持在ArkTS卡片中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

参数名类型必填说明
valueboolean | CircleAttribute | EllipseAttribute | PathAttribute | RectAttribute参数为相应类型的组件,按指定的形状对当前组件进行裁剪;参数为boolean类型时,设置是否按照父容器边缘轮廓进行裁剪。
默认值:false

clipShape12+

clipShape(value: CircleShape | EllipseShape | PathShape | RectShape)

按指定的形状对当前组件进行裁剪。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

参数名类型必填说明
valueCircleShape | EllipseShape | PathShape | RectShape参数为相应类型的组件,按指定的形状对当前组件进行裁剪。

mask12+

mask(value: ProgressMask)

为组件上添加指定形状的遮罩。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

参数名类型必填说明
valueProgressMask在当前组件上加上可动态设置进度、最大值和颜色的遮罩。

mask(deprecated)

mask(value: CircleAttribute | EllipseAttribute | PathAttribute | RectAttribute | ProgressMask)

为组件上添加指定形状的遮罩。

说明:

从API version 7开始支持,从API version 12开始废弃。建议使用maskmaskShape替代。

卡片能力: 从API version 9开始,该接口支持在ArkTS卡片中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

参数名类型必填说明
valueCircleAttribute | EllipseAttribute | PathAttribute | RectAttribute | ProgressMask10+在当前组件上加上指定形状的遮罩。

maskShape12+

mask(value: CircleShape | EllipseShape | PathShape | RectShape)

为组件上添加指定形状的遮罩。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

参数名类型必填说明
valueCircleShape | EllipseShape | PathShape | RectShape在当前组件上加上指定形状的遮罩。

ProgressMask10+

ProgressMask设置遮罩的进度、最大值和遮罩颜色。

原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。

constructor10+

constructor(value: number, total: number, color: ResourceColor)

构造ProgressMask对象。

原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

参数名参数类型必填参数描述
valuenumber进度遮罩的当前值。
totalnumber进度遮罩的最大值。
colorResourceColor进度遮罩的颜色。

updateProgress10+

updateProgress(value: number): void

更新进度遮罩的进度值。

原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

参数名参数类型必填参数描述
valuenumber进度遮罩的当前值。

updateColor10+

updateColor(value: ResourceColor): void

更新进度遮罩的颜色。

原子化服务API: 从API version 11开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

参数名参数类型必填参数描述
valueResourceColor进度遮罩的颜色。

enableBreathingAnimation12+

enableBreathingAnimation(value: boolean): void

进度满时的呼吸光晕动画开关。默认关闭呼吸光晕动画。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

参数名参数类型必填参数描述
valueboolean设置为true则开启呼吸光晕动画。默认值:false

示例

示例1

// xxx.ets
@Entry
@Component
struct ClipAndMaskExample {
  build() {
    Column({ space: 15 }) {
      Text('clip').fontSize(12).width('75%').fontColor('#DCDCDC')
      Row() {
        Image($r('app.media.testImg')).width('500px').height('280px')
      }
      .clip(true) // 如这里不设置clip为true,则Row组件的圆角不会限制其中的Image组件,Image组件的四个角会超出Row
      .borderRadius(20)
      // 用一个280px直径的圆对图片进行裁剪
      Image($r('app.media.testImg'))
        .clipShape(new Circle({ width: '280px', height: '280px' }))
        .width('500px').height('280px')

      Text('mask').fontSize(12).width('75%').fontColor('#DCDCDC')
      // 给图片添加了一个500px*280px的方形遮罩
      Image($r('app.media.testImg'))
        .maskShape(new Rect({ width: '500px', height: '280px' }).fill(Color.Gray))
        .width('500px').height('280px')

      // 给图片添加了一个280px*280px的圆形遮罩
      Image($r('app.media.testImg'))
        .maskShape(new Circle({ width: '280px', height: '280px' }).fill(Color.Gray))
        .width('500px').height('280px')
    }
    .width('100%')
    .margin({ top: 15 })
  }
}
ts

示例2

@Entry
@Component
struct ProgressMaskExample {
  @State progressflag1: boolean = true;
  @State color: Color = 0x01006CDE;
  @State value: number = 10.0;
  @State enableBreathingAnimation: boolean = false;
  @State progress: ProgressMask = new ProgressMask(10.0, 100.0, Color.Gray);
  build() {
    Column({ space: 15 }) {
      Text('progress mask').fontSize(12).width('75%').fontColor('#DCDCDC')
      // 给图片添加了一个280px*280px的进度遮罩
      Image($r('app.media.testImg'))
        .width('500px').height('280px')
        .mask(this.progress)
        .animation({
          duration: 2000, // 动画时长
          curve: Curve.Linear, // 动画曲线
          delay: 0, // 动画延迟
          iterations: 1, // 播放次数
          playMode: PlayMode.Normal // 动画模式
        }) // 对Button组件的宽高属性进行动画配置

      // 更新进度遮罩的进度值
      Button('updateProgress')
        .onClick((event?: ClickEvent) => {
          this.value += 10;
          this.progress.updateProgress(this.value);
        }).width(200).height(50).margin(20)

      // 更新进度遮罩的颜色
      Button('updateColor')
        .onClick((event?: ClickEvent) => {
          if (this.progressflag1) {
            this.progress.updateColor(0x9fff0000);
          } else {
            this.progress.updateColor(0x9f0000ff);
          }
          this.progressflag1 = !this.progressflag1
        }).width(200).height(50).margin(20)
      
      // 开关呼吸光晕动画
      Button('enableBreathingAnimation:' + this.enableBreathingAnimation)
        .onClick((event?: ClickEvent) => {
          this.enableBreathingAnimation = !this.enableBreathingAnimation
          this.progress.enableBreathingAnimation(this.enableBreathingAnimation);
        }).width(200).height(50).margin(20)

      // 恢复进度遮罩
      Button('click reset!')
        .onClick((event?: ClickEvent) => {
          this.value = 0;
          this.progress.updateProgress(this.value);
        }).width(200).height(50).margin(20)
    }
    .width('100%')
    .margin({ top: 15 })
  }
}
ts

标签:遮罩,ArkTS,width,280px,NEXT,HarmonyOS,API,参数,ArkUI
From: https://blog.csdn.net/shudaoshanBBQ/article/details/141063789

相关文章

  • 鸿蒙HarmonyOS NEXT开发:颜色渐变(ArkTS通用属性)
    颜色渐变设置组件的颜色渐变效果。说明:从APIVersion7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。linearGradientlinearGradient(value:{angle?:number|string;direction?:GradientDirection;colors:Array<[ResourceColor,number]......
  • 鸿蒙HarmonyOS NEXT开发:菜单控制(ArkTS通用属性)
    菜单控制为组件绑定弹出式菜单,弹出式菜单以垂直列表形式显示菜单项,可通过长按、点击或鼠标右键触发。说明:从APIVersion7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。CustomBuilder里不支持再使用bindMenu、bindContextMenu弹出菜单。多级菜......
  • 鸿蒙HarmonyOS NEXT开发:悬浮态效果(ArkTS通用属性)
    悬浮态效果设置组件的鼠标悬浮态显示效果。说明:从APIVersion8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。hoverEffecthoverEffect(value:HoverEffect)设置组件的鼠标悬浮态显示效果。原子化服务API: 从APIversion11开始,该接口支持在......
  • 鸿蒙(Harmony) NEXT - AlphabetIndexer实现联系人字母索引
    鸿蒙(Harmony)NEXT9月份就要正式上架了,并且不会再兼容安卓平台,于是我也赶紧给App开发鸿蒙版本,接下来会写一系列的Harmony开发教程。今天使用AlphabetIndexer实现联系人字母索引,AlphabetIndexer是官方封装好的组件咱们实现后的效果图:代码实现首先在aboutToAppear方法中初始......
  • 鸿蒙HarmonyOS开发:常用布局及实用技巧
    文章目录一、概述二、盒子模型三、线性布局(Column/Row)1、space属性2、justifyContent属性3、alignItems属性四、实用技巧1、Blank组件的使用2、layoutWeight属性的使用一、概述布局是指对页面组件进行排列和定位的过程,其目的是有效地组织和展示页面内容,会涉及到......
  • HarmonyOS应用开发知识地图
    HarmonyOS应用开发旅程HarmonyOS应用开发旅程PS:Xmind原文件可以直接跳转官方具体文档地址,如需要原文件请联系:DYZZ19801.准备与学习学习HarmonyOS的基本概念和架构,搭建好所需的开发工具和环境,了解开发规范和最佳实践了解HarmonyOSHarmonyOS介绍HarmonyOS......
  • HarmonyOS 私仓搭建实战
    HarmonyOS私仓搭建实战背景在Android和iOS开发中很多时候都以以二进制的产物的方式进行依赖和协作,Android基于Mave为仓库,iOS有Pod为仓库,我们可以在官方提供的的平台使用别人开放的库,极大的提高了大家的开发效率。但是有些公司业务相关的库并不想被外部人员使用,上传到外部......
  • HarmonyOS 音视频之音频采集实战
    HarmonyOS音视频之音频采集实战背景应用开发过程中很多场景都有音频采集需求,比如聊天功能的发送语音功能,实时语音转文本功能,实时语音通话,实时视频通话等。在Android和iOS端,系统提供了两种形式:实时音频流采集音频文件录制系统还提供了不同形式的API,比如Android:AudioRec......
  • 【Harmony Next】七夕前学会创建开屏动画拿下女同事的芳心
    【HarmonyNext】七夕前学会创建开屏动画拿下女同事的芳心一个优秀的项目需要一个*格够高的动画来开启,下面教你用三步快速实现鸿蒙应用的开屏动画1.创建窗口使用windowStage.createSubWindow("splash_window")创建窗口对窗口进行管理,实现加载开屏动画在UIAbility的生命周期......
  • HarmonyOS DevEco Studio彻底修改工程名称
    关闭项目将项目文件夹替换为新的名称后重新打开项目将AppScope/app.json5中的bundleName改为新的包名{"app":{"bundleName":"com.example.newname",//改为新的包名"vendor":"example","versionCode":1000000,"......