2023-06-07 22:18:18 來源 : 互聯(lián)網
1、Pulse Width Modulation 是一種調光技術,它通過快速的開和關 LED 燈來控制亮度。這種技術可以實現(xiàn)高亮度和高對比度,但是可能會產生屏幕閃爍和眼睛疲勞等問題。
(資料圖)
1、DC調光是一種調光技術,它通過改變電流的強弱來控制亮度。這種技術可以實現(xiàn)平滑的亮度調節(jié),而且不會產生屏幕閃爍和眼睛疲勞等問題。
1、在 Android 開發(fā)中,可以使用
BrightnessManager 類來控制屏幕亮度。可以使用
setBrightness 方法來設置屏幕亮度,也可以使用
setBrightnessMode 方法來設置調光模式。調光模式可以是
BrightnessManager.BRIGHTNESS_MODE_AUTOMATIC(自動調光)或
BrightnessManager.BRIGHTNESS_MODE_MANUAL(手動調光)。
1、下面是使用
BrightnessManager 類手動開啟 DC 調光的代碼示例:
BrightnessManager
brightnessManager
=
new
BrightnessManager
;">)
;
brightnessManager
.
setBrightnessMode
;">BrightnessManager
.
BRIGHTNESS_MODE_MANUAL
)
;
brightnessManager
.
setBrightness
;">0.5f
)
;
在上面的代碼中,
context 是一個
Context 對象,
0.5f 是亮度值(范圍從 0 到 1)。
1、下面是使用
WindowManager.LayoutParams 類手動開啟 DC 調光的代碼示例:
WindowManager
.
LayoutParams
layoutParams
=
getWindow
;">)
.
getAttributes
;">)
;
layoutParams
.
screenBrightness
=
0.5f
;
getWindow
;">)
.
setAttributes
;">)
;
在上面的代碼中,
getWindow 方法返回當前活動的窗口,
0.5f 是亮度值(范圍從 0 到 1)。
1、下面是使用
SeekBar 控件手動開啟 DC 調光的代碼示例:
SeekBar
seekBar
=
findViewById
;">R
.
id
.
seek_bar
)
;
seekBar
.
setOnSeekBarChangeListener
;">new
SeekBar
.
OnSeekBarChangeListener
;">)
{
@Override
public
void
onProgressChanged
;">SeekBar
seekBar
,
int
progress
,
boolean
fromUser
)
{
float
brightness
=
progress
/
100f
;
WindowManager
.
LayoutParams
layoutParams
=
getWindow
;">)
.
getAttributes
;">)
;
layoutParams
.
screenBrightness
=
brightness
;
getWindow
;">)
.
setAttributes
;">)
;
}
@Override
public
void
onStartTrackingTouch
;">SeekBar
seekBar
)
{
}
@Override
public
void
onStopTrackingTouch
;">SeekBar
seekBar
)
{
}
}
)
;
在上面的代碼中,
SeekBar 控件用于手動調整亮度值,
getWindow 方法返回當前活動的窗口,
progress / 100f 是亮度值(范圍從 0 到 1)。
綜上所述,小米10 Pro是低頻PWM調光,但可以手動開啟DC調光??梢允褂?/p>
BrightnessManager 類、
WindowManager.LayoutParams 類或
SeekBar 控件來手動控制屏幕亮度和調光模式。