HarmonyOS 5.0.0 或以上:动态调节屏幕亮度(支持手动设置与读取)


📌 场景介绍

亮度调节在视频播放器、夜间模式、阅读器等场景中非常常见。本篇实现:

  • 获取当前亮度值

  • 设置屏幕亮度(范围 0.0 ~ 1.0)

  • 用户点击按钮调整亮度

  • 实时更新 UI 显示


🧱 页面结构

/entry/src/main/ets
  └── pages/
       └── BrightnessControlDemo.ets     // 亮度调节页

🧩 BrightnessControlDemo.ets 示例页面

import brightness from '@ohos.brightness'

@Entry
@Component
struct BrightnessControlDemo {
  @State currentBrightness: number = 1.0  // 默认最大亮度

  async aboutToAppear() {
    try {
      const level = await brightness.getValue()
      this.currentBrightness = Number(level.toFixed(2))
    } catch (err) {
      console.error('获取亮度失败:', JSON.stringify(err))
    }
  }

  private async setBrightness(value: number) {
    const clamped = Math.min(1.0, Math.max(0.0, value))
    try {
      await brightness.setValue(clamped)
      this.currentBrightness = clamped
    } catch (err) {
      console.error('设置亮度失败:', JSON.stringify(err))
    }
  }

  build() {
    Column() {
      Text("💡 屏幕亮度调节").fontSize(22).margin({ bottom: 20 })
      Text(`当前亮度:${(this.currentBrightness * 100).toFixed(0)}%`).fontSize(18).margin({ bottom: 20 })

      Row() {
        Button("-").width(60).onClick(() => this.setBrightness(this.currentBrightness - 0.1)).margin(10)
        Button("+").width(60).onClick(() => this.setBrightness(this.currentBrightness + 0.1)).margin(10)
      }
    }
    .padding(30)
    .height('100%')
    .alignItems(HorizontalAlign.Center)
    .justifyContent(FlexAlign.Center)
  }
}

✅ 效果说明

  • 页面展示当前亮度(百分比)

  • 点击“+”“-”可调整亮度

  • 设置范围在 0.0 到 1.0 之间,最小为 0%(黑屏),最大为 100%


🔧 拓展建议

  • 使用滑块组件(Slider)实时调节亮度

  • 夜间模式自动降低亮度

  • 开启“自动亮度”检测并控制(需结合传感器 API)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值