一、前言:
笔者在前面第六、七节文章当中,分别指出了音量和屏幕亮度的前置知识,在本节当中,我们将一并实现这两个功能,从而接续第五节内容。本文的逻辑分三大部分,先说用到的变量,再说界面,最后说功能。
其中音量功能,是设置的系统音量,而不是视频音量;其中亮度功能,是设置的应用亮度,而非系统亮度,请注意两者的区别。
亮度功能使用brightness库获取系统亮度值,在初始化亮度值,然后根据触摸情况通过window库设置亮度值
音量功能通过audio库,初始化音量值,根据触摸情况设置音量值
文中代码均是ArkTS代码,使用TS标志,是为了有颜色,好看,嘿嘿!
以下是效果图,即我手指左边垂直向下滑动时,出现亮度调节图标和进度条。

以下是效果图,即我手指右边垂直向下滑动时,出现音量调节图标和进度条。

二、状态变量:
// 以下代码均放在struct yourPageName{}结构体内,但在build(){}函数之外
// 控制图标和进度条是否显示
@State volumeVisible:boolean = false;
@State brightVisible: boolean = false;
// 音量和亮度值
@State volume:number = 0;
@State bright:number = 50;
// 手指触点横坐标位置
@State fingerPosition:number = 0;
// 屏幕一半宽度,我这里是500px
@State halfDeviceWidth:number = 500;
// 根据全局变量获得窗口控制器 ,这里需要提前在EntryAbility中设置全局变量,并把windowStage放进去,代码附下
windowStage: window.WindowStage = AppStorage.get('windowStage') as window.WindowStage;
// 获取主窗口的方式
mainWin: window.Window = this.windowStage.getMainWindowSync();
import AbilityConstant from '@ohos.app.ability.AbilityConstant';
import hilog from '@ohos.hilog';
import UIAbility from '@ohos.app.ability.UIAbility';
import Want from '@ohos.app.ability.Want';
import window from '@ohos.window';
import { BusinessError } from '@kit.BasicServicesKit';
export default class EntryAbility extends UIAbility {
onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate');
}
onDestroy(): void {
hilog.info(0x0000, 'testTag', '%{public}

最低0.47元/天 解锁文章
2894

被折叠的 条评论
为什么被折叠?



