鸿蒙应用示例:ArkTS中实现一键置灰功能

 

引言

在特殊情况下,如国难日或其他重要事件期间,应用程序可能需要将界面转换为灰度显示以示尊重或表达特定的情感。

比如android环境下的代码为

1
2
3
4
5
Paint paint = new Paint();
ColorMatrix cm = new ColorMatrix();
cm.setSaturation( 0);//0:表示灰度显示,1:表示彩色显示
paint.setColorFilter(new ColorMatrixColorFilter(cm));
view.setLayerType(View.LAYER_TYPE_HARDWARE, paint);

  

方案一:使用 saturate 属性

通过设置页面根容器的饱和度为0来实现灰度效果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@Entry
@Component
struct Index {
  build() {
    Column() {
      Image($r("app.media.app_icon"))
        .autoResize(true)
        .width(100)
        .height(100)
    }
    .width('100%')
    .height('100%')
    .saturate(0)
  }
}

  

方案二:使用 grayscale 属性

通过设置页面根容器的灰度效果为1来实现灰度效果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@Entry
@Component
struct Index {
  build() {
    Column() {
      Image($r("app.media.app_icon"))
        .autoResize(true)
        .width(100)
        .height(100)
    }
    .width('100%')
    .height('100%')
    .grayscale(1)
  }
}

  

posted @   zhongcx  阅读(47)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示