鸿蒙next版开发:ArkTS组件通用属性(图像效果)

简介: 在HarmonyOS 5.0中,ArkTS提供了丰富的图像效果属性,如阴影、灰度、高光、饱和度、对比度、图像反转、叠色、色相旋转等,极大丰富了用户界面的表现力。本文详细介绍这些属性并提供示例代码。

在HarmonyOS 5.0中,ArkTS为开发者提供了丰富的图像效果属性,使得开发者可以轻松地为应用中的图像添加各种视觉效果。这些效果包括阴影、灰度、高光、饱和度、对比度、图像反转、叠色、色相旋转等,极大地丰富了用户界面的表现力。本文将详细解读ArkTS中图像效果的通用属性,并提供示例代码进行说明。

图像效果属性
阴影效果
shadow属性用于为图像添加阴影效果。它接受一个对象,包含阴影的半径、颜色、水平偏移和垂直偏移。

Image($r('app.media.image'))
.width('90%')
.height(30)
.shadow({ radius: 10, color: Color.Green, offsetX: 20, offsetY: 20 }); // 添加阴影效果
灰度效果
grayscale属性用于设置图像的灰度效果。它接受一个数值,表示灰度的程度,取值范围为0到1,越接近1,灰度越明显。

Image($r('app.media.image'))
.width('90%')
.height(30)
.grayscale(0.8); // 设置灰度效果
高亮效果
brightness属性用于调整图像的亮度。它接受一个数值,表示亮度的倍数,1为正常亮度,小于1变暗,大于1亮度增大。

Image($r('app.media.image'))
.width('90%')
.height(30)
.brightness(1.2); // 提高亮度
饱和度效果
saturate属性用于调整图像的饱和度。它接受一个数值,表示饱和度的倍数,原图为1。

Image($r('app.media.image'))
.width('90%')
.height(30)
.saturate(2.0); // 提高饱和度
对比度效果
contrast属性用于调整图像的对比度。它接受一个数值,表示对比度的倍数,1为原图,大于1值越大越清晰,小于1值越小越模糊。

Image($r('app.media.image'))
.width('90%')
.height(30)
.contrast(2.0); // 提高对比度
反转效果
invert属性用于设置图像的反转效果。它接受一个数值,表示反转的程度,取值范围为0到1。

Image($r('app.media.image'))
.width('90%')
.height(30)
.invert(0.8); // 设置反转效果
叠色效果
colorBlend属性用于为图像添加叠色效果。它接受一个颜色值,表示叠色的颜色。

Image($r('app.media.image'))
.width('90%')
.height(30)
.colorBlend(Color.Green); // 添加叠色效果
深褐色效果
sepia属性用于设置图像的深褐色效果。它接受一个数值,表示深褐色的程度。

Image($r('app.media.image'))
.width('90%')
.height(30)
.sepia(0.8); // 设置深褐色效果
色相旋转效果
hueRotate属性用于设置图像的色相旋转效果。它接受一个数值,表示色相旋转的角度。

Image($r('app.media.image'))
.width('90%')
.height(30)
.hueRotate(90); // 设置色相旋转效果
示例代码
以下是一个ArkTS图像效果的完整示例:

@Entry
@Component
struct ImageEffectsExample {
build() {
Column({ space: 5 }) {
Text('shadow').fontSize(15).fontColor(0xCCCCCC).width('90%')
Image($r('app.media.image'))
.width('90%')
.height(30)
.shadow({ radius: 10, color: Color.Green, offsetX: 20, offsetY: 20 })

  Text('grayscale').fontSize(15).fontColor(0xCCCCCC).width('90%')
  Image($r('app.media.image'))
    .width('90%')
    .height(30)
    .grayscale(0.3)

  Text('brightness').fontSize(15).fontColor(0xCCCCCC).width('90%')
  Image($r('app.media.image'))
    .width('90%')
    .height(30)
    .brightness(1.2)

  Text('saturate').fontSize(15).fontColor(0xCCCCCC).width('90%')
  Image($r('app.media.image'))
    .width('90%')
    .height(30)
    .saturate(2.0)

  Text('contrast').fontSize(15).fontColor(0xCCCCCC).width('90%')
  Image($r('app.media.image'))
    .width('90%')
    .height(30)
    .contrast(2.0)

  Text('invert').fontSize(15).fontColor(0xCCCCCC).width('90%')
  Image($r('app.media.image'))
    .width('90%')
    .height(30)
    .invert(0.2)

  Text('colorBlend').fontSize(15).fontColor(0xCCCCCC).width('90%')
  Image($r('app.media.image'))
    .width('90%')
    .height(30)
    .colorBlend(Color.Green)

  Text('sepia').fontSize(15).fontColor(0xCCCCCC).width('90%')
  Image($r('app.media.image'))
    .width('90%')
    .height(30)
    .sepia(0.8)

  Text('hueRotate').fontSize(15).fontColor(0xCCCCCC).width('90%')
  Image($r('app.media.image'))
    .width('90%')
    .height(30)
    .hueRotate(90)
}
.width('100%')
.margin({ top: 5 })

}
}

在这个示例中,我们创建了一个包含多种图像效果的列容器。通过设置不同的图像效果属性,我们可以轻松地为图像添加各种视觉效果。

图像效果的用途
图像效果在ArkTS中有多种用途,包括:

美化界面:通过为图像添加阴影、高光、饱和度等效果,可以提升应用的视觉效果。
增强用户体验:适当的图像效果可以提高应用的美观性和用户界面的层次感。
实现动画效果:结合图像效果的变化,可以实现渐变、动态变化等动画效果。
结语
通过本文的介绍,你应该对HarmonyOS 5.0中ArkTS组件的图像效果有了基本的了解。图像效果是UI开发中的重要工具,合理利用这些属性可以使你的应用界面更加美观和实用。希望本文能够帮助你在开发过程中更好地利用ArkTS的图像效果属性。
————————————————

                        版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/lbcyllqj/article/details/143646416

目录
相关文章
|
18天前
|
容器
HarmonyOS NEXT仓颉开发语言实战案例:电影App
周末好!本文分享使用仓颉语言重构ArkTS实现的电影App案例,对比两者在UI布局、组件写法及语法差异。内容包括页面结构、列表分组、分类切换与电影展示等。通过代码演示仓颉在HarmonyOS开发中的应用。##仓颉##ArkTS##HarmonyOS开发
|
18天前
|
容器
HarmonyOS NEXT仓颉开发语言实战案例:外卖App
仓颉语言实战分享,教你如何用仓颉开发外卖App界面。内容包括页面布局、导航栏自定义、搜索框实现、列表模块构建等,附完整代码示例。轻松掌握Scroll、List等组件使用技巧,提升HarmonyOS应用开发能力。
|
18天前
|
存储 IDE 定位技术
【HarmonyOS 5】鸿蒙组件&模板服务详解 - 助力高效开发的利器
在移动应用开发领域,效率与质量始终是开发者追求的核心目标。鸿蒙系统作为新兴的操作系统,为开发者提供了丰富且强大的开发资源,其中鸿蒙组件&模板服务更是成为开发者快速构建高质量应用的得力助手。
70 0
|
19天前
|
容器
HarmonyOS NEXT仓颉开发语言实战案例:健身App
本期分享一个健身App首页的布局实现,顶部采用Stack容器实现重叠背景与偏移效果,列表部分使用List结合Scroll实现可滚动内容。代码结构清晰,适合学习HarmonyOS布局技巧。
|
19天前
|
容器
HarmonyOS NEXT仓颉开发语言实战案例:小而美的旅行App
本文分享了一个旅行App首页的设计与实现,使用List容器搭配Row、Column布局完成个人信息、功能列表及推荐模块的排版,详细展示了HarmonyOS下的界面构建技巧。
|
编译器
鸿蒙NEXT-鸿蒙三层架构搭建,嵌入HMRouter,实现便捷跳转,新手攻略。(2/3)
本文介绍在三层架构中实现模块依赖的步骤。首先在产品定制层(features)的oh-package.json5文件中导入共享包依赖,如"basic":"file:../../commons/basic"。然后在产品层(products)的配置文件中同时导入公共能力层和产品定制层的依赖,示例展示了如何添加"basic"和"my"两个依赖项。通过这些配置,三层架构的各模块之间建立了完整的依赖关系。
85 0
鸿蒙NEXT-鸿蒙三层架构搭建,嵌入HMRouter,实现便捷跳转,新手攻略。(2/3)
|
4天前
|
存储 SQL 前端开发
跟老卫学HarmonyOS开发:ArkTS关系型数据库开发
本节以“账本”为例,使用关系型数据库接口实现账单的增、删、改、查操作。通过创建ArkTSRdb应用,演示如何操作RdbStore进行数据管理,并结合界面按钮实现交互功能。
28 0
跟老卫学HarmonyOS开发:ArkTS关系型数据库开发
|
9天前
|
缓存 移动开发 网络协议
纯血鸿蒙NEXT即时通讯/IM系统:RinbowTalk正式发布,全源码、纯ArkTS编写
RainbowTalk是一套基于MobileIMSDK的产品级鸿蒙NEXT端IM系统,目前已正式发布。纯ArkTS、从零编写,无套壳、没走捷径,每一行代码都够“纯”(详见:《RainbowTalk详细介绍》)。 MobileIMSDK是一整套开源IM即时通讯框架,历经10年,超轻量级、高度提炼,一套API优雅支持 UDP 、TCP 、WebSocket 三种协议,支持 iOS、Android、H5、标准Java、小程序、Uniapp、鸿蒙NEXT,服务端基于Netty编写。
44 1
|
2天前
|
移动开发 前端开发 JavaScript
鸿蒙NEXT时代你所不知道的全平台跨端框架:CMP、Kuikly、Lynx、uni-app x等
本篇基于当前各大活跃的跨端框架的现状,对比当前它们的情况和未来的可能,帮助你在选择框架时更好理解它们的特点和差异。
40 0
|
19天前
|
容器
HarmonyOS NEXT仓颉开发语言实战案例:图片预览器
本文介绍了如何使用仓颉语言实现图片放大预览器。通过弹窗组件`CustomDialogController`与`Swiper`容器结合,实现全屏图片浏览效果,支持多图切换与点击关闭功能,适配动态广场场景下的图片预览需求。