【Kotlin/Android】端末の画面の明るさをコードから変更する方法!WindowManager

この記事からわかること
- Android Studio/Kotlinで端末の画面の明るさを変更するには?
- window.attributes.screenBrightnessプロパティ
- WindowManager.LayoutParamsで指定できる値
index
[open]
\ アプリをリリースしました /
環境
- Android Studio:Koala
- Kotlin:1.9.0
- macOS:Sonoma 14.6.1
端末の画面の明るさをコードから変更する方法
Kotlinで端末の画面の明るさをコードから変更するにはwindow.attributes.screenBrightness
プロパティにWindowManager.LayoutParams.BRIGHTNESS_OVERRIDE_OFF/BRIGHTNESS_OVERRIDE_FULL
などを指定します。
val windowAttributes = window.attributes
// 画面の明るさを一番暗くする
windowAttributes.screenBrightness = WindowManager.LayoutParams.BRIGHTNESS_OVERRIDE_OFF
window.attributes = windowAttributes
設定できるのは以下の3種類になります。
public static class LayoutParams extends ViewGroup.LayoutParams implements Parcelable {
// 画面の明るさを一番明るくする
public static final float BRIGHTNESS_OVERRIDE_FULL = 1.0F;
// 画面の明るさをユーザー設定値に戻す
public static final float BRIGHTNESS_OVERRIDE_NONE = -1.0F;
// 画面の明るさを一番暗くする
public static final float BRIGHTNESS_OVERRIDE_OFF = 0.0F;
}
カスタム値を渡すことで微妙な明るさの調整を行うことも可能です。
val windowAttributes = window.attributes
// 画面の明るさを一番暗くする
windowAttributes.screenBrightness = 0.5f
window.attributes = windowAttributes
またアプリ内から明るさを変更しても端末自体の設定は変更されないためアプリを停止させるとユーザーの設定していた明るさに戻ってくれるようです。
iOS
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。