• 鸿蒙Harmony应用开发—ArkTS声明式开发(通用属性:形状裁剪)


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

    说明:

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

    clip

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

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

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

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

    参数:

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

    mask

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

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

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

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

    参数:

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

    ProgressMask10+

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

    constructor10+

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

    构造ProgressMask对象。

    参数:

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

    updateProgress10+

    updateProgress(value: number): void

    更新进度遮罩的进度值。

    参数:

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

    updateColor10+

    updateColor(value: ResourceColor): void

    更新进度遮罩的颜色。

    参数:

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

    示例

    示例1

    1. // xxx.ets
    2. @Entry
    3. @Component
    4. struct ClipAndMaskExample {
    5. build() {
    6. Column({ space: 15 }) {
    7. Text('clip').fontSize(12).width('75%').fontColor('#DCDCDC')
    8. Row() {
    9. Image($r('app.media.testImg')).width('500px').height('280px')
    10. }
    11. .clip(true) // 如这里不设置clip为true,则Row组件的圆角不会限制其中的Image组件,Image组件的四个角会超出Row
    12. .borderRadius(20)
    13. // 用一个280px直径的圆对图片进行裁剪
    14. Image($r('app.media.testImg'))
    15. .clip(new Circle({ width: '280px', height: '280px' }))
    16. .width('500px').height('280px')
    17. Text('mask').fontSize(12).width('75%').fontColor('#DCDCDC')
    18. // 给图片添加了一个500px*280px的方形遮罩
    19. Image($r('app.media.testImg'))
    20. .mask(new Rect({ width: '500px', height: '280px' }).fill(Color.Gray))
    21. .width('500px').height('280px')
    22. // 给图片添加了一个280px*280px的圆形遮罩
    23. Image($r('app.media.testImg'))
    24. .mask(new Circle({ width: '280px', height: '280px' }).fill(Color.Gray))
    25. .width('500px').height('280px')
    26. }
    27. .width('100%')
    28. .margin({ top: 15 })
    29. }
    30. }

    clipAndMask

    示例2

    1. @Entry
    2. @Component
    3. struct ProgressMaskExample {
    4. @State progressflag1: boolean = true;
    5. @State color: Color = 0x01006CDE;
    6. @State value: number = 10.0;
    7. @State progress: ProgressMask = new ProgressMask(10.0, 100.0, Color.Gray);
    8. build() {
    9. Column({ space: 15 }) {
    10. Text('progress mask').fontSize(12).width('75%').fontColor('#DCDCDC')
    11. // 给图片添加了一个280px*280px的进度遮罩
    12. Image($r('app.media.testImg'))
    13. .width('500px').height('280px')
    14. .mask(this.progress)
    15. .animation({
    16. duration: 2000, // 动画时长
    17. curve: Curve.Linear, // 动画曲线
    18. delay: 0, // 动画延迟
    19. iterations: 1, // 播放次数
    20. playMode: PlayMode.Normal // 动画模式
    21. }) // 对Button组件的宽高属性进行动画配置
    22. // 更新进度遮罩的进度值
    23. Button('updateProgress')
    24. .onClick((event?: ClickEvent) => {
    25. this.value += 10;
    26. this.progress.updateProgress(this.value);
    27. }).width(200).height(50).margin(20)
    28. // 更新进度遮罩的颜色
    29. Button('updateColor')
    30. .onClick((event?: ClickEvent) => {
    31. if (this.progressflag1) {
    32. this.progress.updateColor(0x9fff0000);
    33. } else {
    34. this.progress.updateColor(0x9f0000ff);
    35. }
    36. this.progressflag1 = !this.progressflag1
    37. }).width(200).height(50).margin(20)
    38. // 恢复进度遮罩
    39. Button('click reset!')
    40. .onClick((event?: ClickEvent) => {
    41. this.value = 0;
    42. this.progress.updateProgress(this.value);
    43. }).width(200).height(50).margin(20)
    44. }
    45. .width('100%')
    46. .margin({ top: 15 })
    47. }
    48. }

    progressMask

    最后,有很多小伙伴不知道学习哪些鸿蒙开发技术?不知道需要重点掌握哪些鸿蒙应用开发知识点?而且学习时频繁踩坑,最终浪费大量时间。所以有一份实用的鸿蒙(Harmony NEXT)资料用来跟着学习是非常有必要的。 

    这份鸿蒙(Harmony NEXT)资料包含了鸿蒙开发必掌握的核心知识要点,内容包含了ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战等等)鸿蒙(Harmony NEXT)技术知识点。

    希望这一份鸿蒙学习资料能够给大家带来帮助,有需要的小伙伴自行领取,限时开源,先到先得~无套路领取!!

     获取这份完整版高清学习路线,请点击→纯血版全套鸿蒙HarmonyOS学习资料

    鸿蒙(Harmony NEXT)最新学习路线

    •  HarmonOS基础技能

    • HarmonOS就业必备技能 
    •  HarmonOS多媒体技术

    • 鸿蒙NaPi组件进阶

    • HarmonOS高级技能

    • 初识HarmonOS内核 
    • 实战就业级设备开发

    有了路线图,怎么能没有学习资料呢,小编也准备了一份联合鸿蒙官方发布笔记整理收纳的一套系统性的鸿蒙(OpenHarmony )学习手册(共计1236页)鸿蒙(OpenHarmony )开发入门教学视频,内容包含:ArkTS、ArkUI、Web开发、应用模型、资源分类…等知识点。

    获取以上完整版高清学习路线,请点击→纯血版全套鸿蒙HarmonyOS学习资料

    《鸿蒙 (OpenHarmony)开发入门教学视频》

    《鸿蒙生态应用开发V2.0白皮书》

    图片

    《鸿蒙 (OpenHarmony)开发基础到实战手册》

    OpenHarmony北向、南向开发环境搭建

    图片

     《鸿蒙开发基础》

    • ArkTS语言
    • 安装DevEco Studio
    • 运用你的第一个ArkTS应用
    • ArkUI声明式UI开发
    • .……

    图片

     《鸿蒙开发进阶》

    • Stage模型入门
    • 网络管理
    • 数据管理
    • 电话服务
    • 分布式应用开发
    • 通知与窗口管理
    • 多媒体技术
    • 安全技能
    • 任务管理
    • WebGL
    • 国际化开发
    • 应用测试
    • DFX面向未来设计
    • 鸿蒙系统移植和裁剪定制
    • ……

    图片

    《鸿蒙进阶实战》

    • ArkTS实践
    • UIAbility应用
    • 网络案例
    • ……

    图片

     获取以上完整鸿蒙HarmonyOS学习资料,请点击→纯血版全套鸿蒙HarmonyOS学习资料

    总结

    总的来说,华为鸿蒙不再兼容安卓,对中年程序员来说是一个挑战,也是一个机会。只有积极应对变化,不断学习和提升自己,他们才能在这个变革的时代中立于不败之地。 

  • 相关阅读:
    从源码看vue(v2.7.10)中的watch的原理
    RK3568笔记分享之“如何挂载SPI FRAM铁电存储芯片”——飞凌嵌入式
    Python---格式化输出与%百分号----涉及转义符 \ 反斜杠的使用
    jsp旅行网系统Myeclipse开发mysql数据库web结构java编程计算机网页项目
    【微信小程序】项目实战—抽签应用
    [附源码]java毕业设计面向服装集群企业的个性化定制服务系统
    React(精读官方文档) - 高级指引 -高阶组件
    经典算法学习之---折半插入排序
    3C认证所需要的条件和流程
    设计模式-观察者模式
  • 原文地址:https://blog.csdn.net/m0_64420071/article/details/136422415