HarmonyOS应用一键置灰指南
一键置灰通常应用于如下场景
1. 重大悼念活动:
在国家发生重大灾难、事故或举行悼念日等特殊时期,为了表达对逝者的尊重和哀悼,许多 APP 会将界面置灰。例如,在一些地震、空难等灾难事件发生后,以及全国性的哀悼日期间,大量 APP 会响应号召进行一键置灰。这不仅是一种情感上的表达,也是企业和平台社会责任感的体现。
2. 特殊纪念日或主题活动:
某些具有特殊意义的纪念日活动,APP 可能会选择置灰界面来营造特定的氛围。比如在反法西斯战争胜利纪念日等与历史事件相关的日子,一些历史文化类或相关主题的 APP 可能会通过置灰来引导用户关注和铭记这些重要时刻。
3. 模拟特殊视觉效果或用户体验场景:
在一些特定的应用场景中,为了给用户带来独特的视觉感受或模拟特定的情境,APP 会使用置灰功能。例如,在一些电影、电视剧的宣传 APP 中,为了营造出怀旧、复古或特定的剧情氛围,可能会将界面一键置灰,让用户仿佛置身于特定的时代背景中;或者在一些游戏 APP 中,特定的关卡或场景可能需要将界面置灰,以增加游戏的神秘感、紧张感或突出特定的元素。
4. 系统或 APP 维护升级:
当 APP 进行维护、升级或出现故障需要暂停使用时,为了向用户明确提示当前 APP 的不可用状态,可能会将界面置灰,并显示相关的维护提示信息。这样可以避免用户在不知情的情况下继续操作,减少用户的困惑和不满,同时也方便开发团队进行维护工作。
实现方案
1. 组件通用属性 grayscale
grayscale(value: number) 为组件添加灰度效果。
value,为当前组件添加灰度效果。值定义为灰度转换的比例,入参1.0则完全转为灰度图像,入参0.0则图像无变化,入参在0.0和1.0之间时,效果呈线性变化。(百分比);默认值:0.0;取值范围:[0.0, 1.0];说明:设置小于0.0的值时,按值为0.0处理,设置大于1.0的值时,按值为1.0处理。
Image($r('app.media.image')).width('90%').height(30).grayscale(0.7)
Image($r('app.media.image')).width('90%').height(30).grayscale(1)
Text('为组件添加灰度效果').fontSize(15).fontColor(0xFF0000).grayscale(1)
封装一个通用的置灰组件,所有页面使用该组件包裹。
2、窗口属性 setWindowGrayScale
setWindowGrayScale(grayScale: number): Promise
设置窗口灰阶,使用Promise异步回调。该接口需要在调用loadContent()或setUIContent()使窗口加载页面内容后调用。
grayScale,窗口灰阶。该参数为浮点数,取值范围为[0.0, 1.0]。0.0表示窗口图像无变化,1.0表示窗口图像完全转为灰度图像,0.0至1.0之间时效果呈线性变化。
import { BusinessError } from '@kit.BasicServicesKit';
windowClass?.setUIContent('pages/Index', (error: BusinessError) => {
if (error.code) {
console.error(`Failed to set the content. Cause code: ${error.code}`);
return;
}
console.info('Succeeded in setting the content.');
let grayScale: number = 0.5;
try {
if (canIUse("SystemCapability.Window.SessionManager")) {
let promise = windowClass?.setWindowGrayScale(grayScale);
promise?.then(() => {
console.info('Succeeded in setting the grayScale.');
}).catch((err: BusinessError) => {
console.error(`Failed to set the grayScale. Cause code: ${err.code}, message: ${err.message}`);
});
}
} catch (exception) {
console.error(`Failed to set the grayScale. Cause code: ${exception.code}, message: ${exception.message}`);
}
});
3、使用工具库harmony-utils
调用工具类方法, AppUtil.setGrayScale(1);
AppUtil.setGrayScale(0.7); //设置灰度0.7
AppUtil.setGrayScale(1); //设置全灰
AppUtil.setGrayScale(1, true); //只置灰主窗口
AppUtil.setGrayScale(0); //取消置灰
HarmonyOS应用一键置灰指南的更多相关文章
- 【每日一记】unity3d 图片置灰shader
项目须要.參考了一下网上的资料,写了一个shader,给button置灰. shader详细实现例如以下: 2016.07.25补充,支持mask剪裁 Shader "Transparent ...
- 使用CSS将图片转换成黑白(灰色、置灰)z转
小tip: 使用CSS将图片转换成黑白(灰色.置灰) by zhangxinxu from http://www.zhangxinxu.com 本文地址:http://www.zhangxinxu.c ...
- 利用C语言强行点击置灰的按钮
通常很多情况下,会有这样的事情,就是: 我们在运行某些程序的时候,发现按钮置灰了,比如购买版权或者输入序列号才能够获得访问权限.某个按钮才允许点击. 其实所有的这些东西都是 别的人或者公司利用一些编程 ...
- 设置UIButton的文字居右显示 去掉点击默认置灰效果
1.设置UIButton的文字居右显示 [button setContentHorizontalAlignment:UIControlContentHorizontalAlignmentRight]; ...
- 【有意思的BUG】默认置灰的属性的值传递
数据由Client发送给Server,如下图所示,Server在收到请求后会响应Client. 比如Client发送给Server一组数据:Name:sean&Hobby:movies& ...
- Button 使用Command 按钮置灰未更新
当Button绑定了Command,按钮在窗口弹出.或者其它事件时,会自动置灰. 有时,异步执行时间较长时,界面一些绑定了命令的Button,State不会变化,会一直置灰. 直到再次转移Focus. ...
- idea配置tomcat运行按钮置灰,下拉没有自定义的tomcat选项
一.问题 下拉没有自定义tomcat的选项 run按钮置灰,点不了 二.解决 添加自己的tomcat时,一定要点加号,不要用那个默认的.
- easyui按钮linkbutton 不可用(置灰)与 可用(取消置灰)
easyui linkbutton按钮: 不可用(置灰) $('#butFree').linkbutton('disable'); 可用(取消置灰) $('#butFree').linkbutton( ...
- [原]NGUI之按钮置灰
传统按钮置灰,需要使用另外一张纹理. 本例通过修改shader和NGUI sprite的r值实现按钮置灰.优势:节省纹理,操作简单 将NGUI Unlit/Transparent Colored片段部 ...
- easyui datagrid里的复选框置灰方法
easyui datagrid里的复选框置灰方法: $('.datagrid input').prop('disabled',true);//复选框置灰
随机推荐
- Windows Server 2012 配置 FTP
环境 Windows Server 2012 安装步骤 打开服务器管理器 管理 - 添加角色和功能 开始之前 选择安装类型 服务器选择 选择对应的服务器... 服务器角色 功能 确认 安装进度 配置步 ...
- AI时代:开源大模型选择
https://docs.llamaindex.ai/en/stable/module_guides/models/llms.html 可以按参数和评分来选择模型: https://huggingfa ...
- nginx中的路径匹配规则详解(location规则)
Nginx的路径匹配规则 Nginx的匹配规则用location指令来实现,Nginx 的location指令用于匹配请求的 URI(请求路径),并根据匹配结果执行特定的处理指令.location是实 ...
- 继承 QPaintEngine 利用 QSvgRenderer 从SVG 图片中提取路径(QPainterPath)的方法
SVG 作为为可缩放矢量图形(Scalable Vector Graphics),易于编辑和维护,基于XML的文本文件存储,在网页设计.图标制作.数据可视化和其他图形相关的领域应用广泛.在应用工程中总 ...
- Asp.net mvc基础(六)TempData
在客户端重定向或验证码等情况下,由于要跨请求的存取数据,是不能放到ViewBag.Model中,需要"暂时存到Session中,用完了删除"的需求:使用TempData可以做到. ...
- java 限流
题记 在高并发的分布式系统中,我们都需要考虑接口并发量突增时造成的严重后果,后端服务的高压力严重甚至会导致系统宕机.为避免这种问题,我们都会为接口添加限流.降级.熔断等能力,从而使接口更为健壮. 限流 ...
- Python提交 post方法之‘Content-Type‘: multipart/form-datay
最近写s2_061 Python脚本得时候遇到了POST 提交 'Content-Type': multipart/form-data 这个问题,然后查阅资料开始解决. 一.首先说一下POST 提交数 ...
- 集合流之“anyMatch”的应用【返回boolean类型】
判断集合中是否存在"字符串",返回boolean类型 boolean isExit = allSku.stream().map(Product::getFeatureList) . ...
- sqlalchemy多对多关联
sqlalchemy_many_to_many.py #!-*-coding:utf-8-*-from sqlalchemy import Table,Column,Integer,String,DA ...
- (补) HMM 求解参数-状态转移矩阵 A
昨天在看的时候, 才发现, HMM参数求解给忘了 状态转移矩阵A的求解, 我以为我做了...好气哦, 不多比比, 直接来. A 是状态转移矩阵, 表示在 已知前一个状态下, 求解后一个概率(写出来就是 ...