鸿蒙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

目录
相关文章
|
10天前
|
搜索推荐 前端开发 开发者
「Mac畅玩鸿蒙与硬件19」鸿蒙UI组件篇9 - 自定义动画实现
自定义动画让开发者可以设计更加个性化和复杂的动画效果,适合表现独特的界面元素。鸿蒙提供了丰富的工具,支持通过自定义路径和时间控制来创建复杂的动画运动。本篇将带你学习如何通过自定义动画实现更多样化的效果。
65 11
「Mac畅玩鸿蒙与硬件19」鸿蒙UI组件篇9 - 自定义动画实现
|
10天前
|
大数据 UED
「Mac畅玩鸿蒙与硬件16」鸿蒙UI组件篇6 - List 和 Grid 组件展示数据列表
List 和 Grid 是鸿蒙开发中的核心组件,用于展示动态数据。List 适合展示垂直或水平排列的数据列表,而 Grid 则适用于展示商品或图片的网格布局。本篇将展示如何封装组件,并通过按钮实现布局切换,提升界面的灵活性和用户体验。
49 9
「Mac畅玩鸿蒙与硬件16」鸿蒙UI组件篇6 - List 和 Grid 组件展示数据列表
|
15天前
|
Android开发
鸿蒙开发:自定义一个简单的标题栏
本身就是一个很简单的标题栏组件,没有什么过多的技术含量,有一点需要注意,当使用沉浸式的时候,注意标题栏的位置,需要避让状态栏。
鸿蒙开发:自定义一个简单的标题栏
|
15天前
|
API
鸿蒙开发:切换至基于rcp的网络请求
本文的内容主要是把之前基于http封装的库,修改为当前的Remote Communication Kit(远场通信服务),无非就是通信的方式变了,其他都大差不差。
鸿蒙开发:切换至基于rcp的网络请求
|
20天前
|
UED
鸿蒙next版开发:相机开发-适配不同折叠状态的摄像头变更(ArkTS)
在HarmonyOS 5.0中,ArkTS提供了强大的相机开发能力,特别是针对折叠屏设备的摄像头适配。本文详细介绍了如何在ArkTS中检测和适配不同折叠状态下的摄像头变更,确保相机应用在不同设备状态下的稳定性和用户体验。通过代码示例展示了具体的实现步骤。
56 8
|
移动开发 Ubuntu 网络协议
嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令(中)
嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令
172 1
嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令(中)
|
XML Web App开发 开发框架
鸿蒙开发入门 | 开发第一个鸿蒙应用+页面跳转
准备好鸿蒙开发环境后,接下来就需要创建鸿蒙项目,掌握项目的创建过程以及配置。项目创建好后,需要把项目运行在模拟器上,鸿蒙的模拟和安卓模拟器有些不同,鸿蒙提供远程模拟器和本地模拟器,通过登录华为账号登录在线模拟器,使用DevEco Studio可将项目部署到远程模拟器中。
1274 1
鸿蒙开发入门 | 开发第一个鸿蒙应用+页面跳转
|
存储 Ubuntu 前端开发
嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令(下)
嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令
340 0
嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令(下)
|
存储 编解码 Ubuntu
嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令(上)
嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令
232 0
嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令(上)
|
开发工具
HarmonyOS(鸿蒙)开发一文入门
HarmonyOS(鸿蒙)开发一文入门
174 0
HarmonyOS(鸿蒙)开发一文入门