2

WindowManager.LayoutParams.screenBrightnessは、0と1の間の浮動小数点数を取ります。

ただし、(少なくともジンジャーブレッドを搭載したNexus Sでは)この値を低く設定しすぎると、画面が完全にオフになるようです。

画面をオフにせずに設定できる最小値を知る方法はありますか?また、この数はデバイス間で一定ですか?そうでない場合、実行時にどのように取得できますか?

次にいくつかのサンプルコードを示します。

Window window = activity.getWindow();
WindowManager.LayoutParams lp = window.getAttributes();
lp.screenBrightness = 0.01f; // float between 0 and 1
window.setAttributes(lp);

(これはアプリ内の明るさスライダー用なので、使用する最小値を知る必要があります)

ありがとう

4

2 に答える 2

5

私はこれが古い質問であることを知っています、しかしグーグルは私をこの投稿に連れて来ました、そして私は私の解決策を共有したいと思いました。私は今日これを見つけました、そしてそれは私のために働きました。ここで見つけました:http://developer.android.com/reference/android/view/WindowManager.LayoutParams.html#BRIGHTNESS_OVERRIDE_OFF

例:

Window MyWindow = getWindow();
WindowManager.LayoutParams winParams = MyWindow.getAttributes();
winParams.screenBrightness = WindowManager.LayoutParams.BRIGHTNESS_OVERRIDE_OFF;
MyWindow.setAttributes(winParams);

これがお役に立てば幸いです。

于 2012-06-25T15:20:00.530 に答える
0

Kotlinを使用している場合は、単一行の実装が可能です

window.attributes.screenBrightness = WindowManager.LayoutParams.BRIGHTNESS_OVERRIDE_OFF
于 2021-11-07T23:49:03.427 に答える