HarmonyOS 鸿蒙Next 界面黑白化

发布于 1周前 作者 caililin 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 界面黑白化

纪念日等,系统界面切换黑白化,有实现的方案或案例吗?

4 回复

置灰可以通过选择设置页面根组件的如下通用属性。 1).saturate(0) https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-universal-attributes-image-effect-V5#saturate 2).grayscale(1) https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-universal-attributes-image-effect-V5#grayscale

@Entry
@Component
struct Index {
build() {
Row() {
Column() {
Image($r("app.media.icon"))
.autoResize(true)
.width(100)
.height(100)
}
}
.width('100%')
.height('100%')
.saturate(0)
}
@Entry
@Component
struct ArkUIClubTest {

@State saturateValue: number = 0;

build() {

Column({space: 10}) {
Row({space: 10}) {
Text('Red Text')
.fontColor(Color.Red)
.fontSize(22)

Text('Blue Text')
.fontColor(Color.Blue)
.fontSize(22)
}

Row({space: 10}) {

Button('White Text')
.fontColor(Color.White)
}

Flex()
.width("100%")
.height(50)
.backgroundColor(Color.Pink)

Image($r("app.media.startIcon"))
.height(150)

Row({space: 10}) {

Button('页面置灰')
.onClick(() => {
this.saturateValue = 1; // 页面置灰
})

Button('恢复彩色')
.onClick(() => {
this.saturateValue = 0; // 页面复原
})
}
}
.width("100%")
.height("100%")
.padding(10)
.grayscale(this.saturateValue) // 设置根组件的颜色饱和度
}
最简单的就是app根组件设置灰度为1

通过设置容器组件 .saturate(0) 实现.

如果整个app使用Navigation, 则只需要设置一处就可以了. 否则可能需要设置多个页面容器, 可以通过appstorage, 一个全局变量统一控制.


具体参考:

https://developer.huawei.com/consumer/cn/doc/harmonyos-faqs-V5/faqs-arkui-131-V5

作为IT专家,对于HarmonyOS 鸿蒙Next界面黑白化的问题,以下是一些可能的原因及解决方案:

  1. 系统设置:检查是否开启了黑白模式、电子书模式或深色模式,这些模式都可能导致界面黑白化。可以在设置中搜索相关选项并关闭。
  2. 应用问题:某些应用可能自带深色模式或颜色反转功能,检查并关闭这些功能。同时,确保应用已更新到最新版本,以修复可能存在的显示问题。
  3. 系统缓存:系统缓存可能导致显示异常,尝试清理系统缓存后重启设备。
  4. 系统更新:检查鸿蒙系统是否已更新到最新版本,系统更新可能包含修复显示问题的补丁。

如果上述方法均无法解决问题,可能是系统或硬件层面的故障。此时,建议备份重要数据后尝试恢复出厂设置。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部