OpenHarmony如何控制屏幕亮度
大家在拿到dayu之后,都吐槽说,会经常熄屏,不利于调试,那么有没有一种办法,可以让app不熄屏呢,答案是有的,今天我们就来揭秘一下,如何控制屏幕亮度
1.控制屏幕常亮
首先导入模块
import brightness from '@system.brightness';
接下来在项目中使用,首先新建一个项目
在默认生成的代码里,我们只需要添加生命周期函数onPageShow,并在里面添加
brightness.setKeepScreenOn({//设置保持屏幕常亮keepScreenOn: true,//接口调用成功的回调函数。success: function () {console.log('设置成功')},//接口调用失败的回调函数。fail: function (data, code) {console.log('设置失败 错误码code:' + code + ', data: ' + data);},});
就可以实现。
以下是完整代码:
/** Copyright (c) 2022 JianGuo Device Co., Ltd.* Licensed under the Apache License, Version 2.0 (the "License");* you may not use this file except in compliance with the License.* You may obtain a copy of the License at** http://www.apache.org/licenses/LICENSE-2.0** Unless required by applicable law or agreed to in writing, software* distributed under the License is distributed on an "AS IS" BASIS,* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.* See the License for the specific language governing permissions and* limitations under the License.*/
/*** @ProjectName : AbilityDemo* @FileName : brightness* @Author : 坚果* @Time : 2022/9/29 9:36* @Description : 屏幕亮度设置*/
import router from '@ohos.router';
import brightness from '@system.brightness';
@Entry
@Component
struct brightnessSample {@State message: string = '亮度调节'@State progressValue: number = 0;onPageShow(){brightness.setKeepScreenOn({//设置保持屏幕常亮keepScreenOn: true,//接口调用成功的回调函数。success: function () {console.log('设置成功')},//接口调用失败的回调函数。fail: function (data, code) {console.log('设置失败 错误码code:' + code + ', data: ' + data);},});}build() {Row() {Column() {Text(this.message).fontSize(20).fontWeight(FontWeight.Bold).onClick(() => {router.back()})}.width('100%')}.height('100%')}
}
完成了屏幕常亮的功能,接下来,我们再结合进度条组件实现一个动态调节亮度的小功能,
2.动态调节亮度
需要有两个前置知识
Progress
Progress
组件可以精确的设置当前进度条的进度,它主要用在有加载进度的场景。
Progress定义介绍
interface ProgressInterface {(options: ProgressOptions): ProgressAttribute;
}declare interface ProgressOptions {value: number; // 必须要指定初始进度total?: number;style?: ProgressStyletype?: ProgressType
}
参数说明:
- value:表示当前进度,取值范围[0, 100],当超过 100 时无效。
- total:表示进度条总进度,默认值为100。
- type、style:设置进度条的样式,
style
从 API 8 起使用type
代替,ProgressType
定义了以下 种样式:- Linear:进度条样式为条形进度条。
- Eclipse:进度条样式为圆形进度条。
- Ring:环形进度条。
- ScaleRing:环形刻度进度条。
- Capsule:胶囊样式进度条。
接口参数中的进度总长total,默认值100符合进度条的绝大部分使用场景,如果有需要,可以设置为其它正整数的值,最终进度条的完成度取决于value/total的结果,如,将total赋值100,value赋值68,最终结果就是68/100,也就是68%。
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
value | number | 是 | 屏幕亮度,值为1-255之间的整数。 - 如果值小于等于0,系统按1处理。 - 如果值大于255,系统按255处理。 - 如果值为小数,系统将处理为整数。例如设置为8.1,系统按8处理。 |
success | () => void | 否 | 接口调用成功的回调函数。 |
fail | (data: string, code: number) => void | 否 | 接口调用失败的回调函数。 |
complete | () => void | 否 | 接口调用结束的回调函数。 |
首先设置设备当前的屏幕亮度值。设置brightness.setValue
brightness.setKeepScreenOn
setKeepScreenOn(Object): void
设置屏幕是否保持常亮状态。
static setKeepScreenOn(options?: SetKeepScreenOnOptions): void;
接下来先看定义介绍
export interface SetKeepScreenOnOptions {/*** Whether to always keep the screen on.*/keepScreenOn: boolean;/*** Called when the setting is successful.*/success?: () => void;/*** Called when the setting fails.*/fail?: (data: string, code: number) => void;/*** Called when the execution is completed.*/complete?: () => void
}
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
keepScreenOn | boolean | 是 | 是否保持屏幕常亮。 |
success | () => void | 否 | 接口调用成功的回调函数。 |
fail | (data: string, code: number) => void | 否 | 接口调用失败的回调函数。 |
complete | () => void | 否 | 接口调用结束的回调函数。 |
以下是完整源码
import router from '@ohos.router';
import brightness from '@system.brightness';
@Entry
@Component
struct brightnessSample {@State message: string = '亮度调节'@State progressValue: number = 0;
aboutToAppear(){setInterval(()=>{if(this.progressValue < 100){this.progressValue += 5}brightness.setValue({value: this.progressValue *2.5,success: function(){console.log('handling set brightness success.');},fail: function(data, code){console.log('handling set brightness value fail, code:' + code + ', data: ' + data);},});},500)}build() {Row() {Column() {Text(this.message).fontSize(20).fontWeight(FontWeight.Bold).onClick(() => {router.back()})Progress({value: this.progressValue, // 设置当前进度total: 100, // 设置进度总量type: ProgressType.Linear}).style({strokeWidth: 18}) // 设置进度条线宽.size({width: '100%', height: 40})}.width('100%')}.height('100%')}
}
参考资料
屏幕亮度
OpenHarmony如何控制屏幕亮度相关推荐
- windows api 控制屏幕亮度
屏幕亮度和音量不一样需要通过控制器去处理,这里的控制器可以是通过PCIE去控制FPGA等.
- linux终端调节亮度,从Ubuntu终端控制屏幕亮度
如果您在一天的不同时间使用Ubuntu系统,则可能还需要一遍又一遍地更改屏幕的亮度,以使您的眼睛更轻松.尽管可以通过用户界面实现此目的,但是我主要在命令行上工作,并寻找一种方法来控制终端本身的屏幕亮度 ...
- 调整屏幕亮度,调整字体大小
在我们开发项目的过程中,常常会遇到这样的功能,比如调整亮度,或者调整当前屏幕的字体大小, 其实这样的功能很好实现, 具体代码如下: 一.声明成员变量 1 { 2 UIView *_view; 3 BO ...
- linux PWM驱动屏幕亮度及pwm子系统框架(Linux驱动开发篇)
1.对象 imx6ull单片机,控制其下面的pwm3的外设.关于对象的详细介绍看裸机pwm控制屏幕亮度 在dtsi中的位置 /soc/aips1/pwm3 pwm3: pwm@02088000 { c ...
- 解决 win10 更新系统或恢复出厂设置之后屏幕亮度无法调节的问题
解决 win10 更新系统或恢复出厂设置之后屏幕亮度无法调节的问题 目标人群 以前在电脑上装过 向日葵远程控制软件 的小伙伴们. 引言 笔者前段时间将电脑(荣耀magicbook 2018)重置之后发 ...
- #DAYU200#如何动态调节屏幕亮度
大家在拿到dayu之后,都吐槽说,会经常熄屏,不利于调试,那么有没有一种办法,可以让app不熄屏呢,答案是有的,今天我们就来揭秘一下,如何控制屏幕亮度 1.控制屏幕常亮 首先导入模块 import b ...
- Win10 开启夜间模式没有反应 屏幕亮度无法调整
如图,可以开启夜间模式,但是实际上屏幕没有变化 或者控制屏幕亮度没变化 解决办法: 1.打开设备管理器,双击图中的选项让他运行就好了
- ubuntu (20.04 LTS) 屏幕亮度调节无效解决方法
ubuntu屏幕亮度调节无效解决方法 问题描述 尝试过的解决方法 解决方法发现历程 解决方法 总结 问题描述 因为学习需要,在Win10系统的基础上安装了Ubuntu20.04 LTS 双系统,但 ...
- Win10屏幕亮度无法调节解决折腾记录
博客文章地址:Win10屏幕亮度无法调节解决折腾记录 最前 不记得从什么时候更新了哪个版本的Win10起,亦或者安装了某个软件后,我的笔记本电脑就开始无法调整屏幕亮度(默认大概50%的亮度),包括但不 ...
最新文章
- 使用 TiKV 构建分布式类 Redis 服务
- 802.11发展到802.11g历程
- oraclesqldeveloper 批量插入多个存储过程_MongoDB如何批量执行写操作
- stringutils 用哪个包 apache spring_spring整合mq、jsonp跨越、httpclient工具的使用
- Spring-Cloud-Netflix-Eureka 服务注册治理
- Linux下的网络配置与连接
- 效率低下的原因--开发者说
- .NET Core 获取 Request/Headers 等信息
- gson读取json字符串_通过Gson解析Json数据
- 桌面计算机地址栏在哪,win10系统工具栏怎样添加桌面和地址栏选项【图文教程】...
- 回顾一年的工作历程_但回首这一年来的工作经历
- 计算机专业网名英语翻译,英语网名大全带翻译【三篇】
- 浙江工商大学计算机技术专硕,浙江工商大学会计专硕(MPAcc)项目介绍
- 用elasticsearch和nuxtjs搭建bt搜索引擎
- Process finished with exit code 1 解决方法
- 1.计算机指令系统,深入学习计算机指令系统唐书
- 【学习亚马逊AWS IOT体系有感---万物互联(物联网)】
- 中产移民:很难找到好工作。
- 工业大数据应用技术国家工程实验室
- JAVA图形界面中的事件处理
热门文章
- 搜狗输入法怎样使用自定义短语
- 红米4 android 8,【红米4(标准版) 安卓6.0.1线刷包】MIUI V8.1.4.0.MCECNDI稳定版 可解账号锁...
- 2023年5月19日Redis学习记录(笔记md文档非本人亲自编写,仅作为个人学习记录,无其他目的)
- eating的中文意思_eating是什么意思
- 机票价格按照淡季旺季、头等舱和经济舱收费、输入机票原价、月份和头等舱或经济舱。按照如下规则计算机票价格:旺季(5-10月)头等舱9折,经济舱8.5折,淡季(11月到来年4月)头等舱7折,经济舱6.5折
- org.zkoss.xel.XelException: Resource not found:
- 插上耳机没声音 程序包ID:Audioplaybackdiagnostic 错误代码:0x80070002 源:引擎 上下文:升级
- XR872图传声传小例程——无线传输
- R语言:表达式、数学公式、特殊符号
- 九度OJ—题目1066:字符串排序