HarmonyOS 鸿蒙Next中如何给Image组件加蒙层?
HarmonyOS 鸿蒙Next中如何给Image组件加蒙层? 类似安卓Image组件的tint属性,在鸿蒙中如何实现,比如我想给Image组件加个’#94b0fc’的蒙层?
请问有对应的实现办法嘛
5 回复
把RGB十六进制格式的颜色数值转为ARGB 四通道格式
private color: common2D.Color = {
alpha: 255,
red: 148,
green: 176,
blue: 252
};
Image($r('app.media.trade_feedback_ft_close'))
.width(40)
.height(40)
.colorFilter(drawing.ColorFilter.createBlendModeColorFilter(this.color, drawing.BlendMode.SRC_IN))
更多关于HarmonyOS 鸿蒙Next中如何给Image组件加蒙层?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
你要不然使用stack浮动布局,给图片加一层组件,然后设置背景色和透明的看看能不能实现你要的效果
在HarmonyOS鸿蒙Next中,可通过在Image组件上叠加半透明遮罩实现蒙层效果。使用Stack布局,将Image与一个设置了背景色和透明度的Box组件叠加。示例代码:
Stack() {
Image($r('app.media.image'))
.width(100)
.height(100)
Box()
.width(100)
.height(100)
.backgroundColor('#000000')
.opacity(0.5)
}
通过调整Box的backgroundColor和opacity属性控制蒙层颜色和透明度。
在HarmonyOS Next中,可以通过Image
组件的colorFilter
属性实现蒙层效果。使用ColorMatrix.createColorMatrixFilter
并设置目标颜色(如#94b0fc
)的RGBA矩阵即可。示例代码如下:
import { ColorMatrix } from '@kit.ArkGraphics2D';
Image($r('app.media.example'))
.colorFilter(
ColorMatrix.createColorMatrixFilter([
0, 0, 0, 0, 0.58, // R
0, 0, 0, 0, 0.69, // G
0, 0, 0, 0, 0.99, // B
0, 0, 0, 1, 0 // A
])
)
其中矩阵值需将#94b0fc
转换为RGB分量(R:0.58, G:0.69, B:0.99)并填入每行的第五位,Alpha保持为1。此方法会覆盖原图颜色,实现均匀着色效果。