📌 场景介绍
亮度调节在视频播放器、夜间模式、阅读器等场景中非常常见。本篇实现:
-
获取当前亮度值
-
设置屏幕亮度(范围 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)