3
    public void SetBright(float value) 
{
    Window mywindow = getWindow();

    WindowManager.LayoutParams lp = mywindow.getAttributes();

            lp.screenBrightness = value;

            mywindow.setAttributes(lp);
}

画面の明るさを調整したい。しかし、この方法を使用しようとしても何も起こりません。KEEP_SCREEN_ON フラグを使用しているためでしょうか?

4

3 に答える 3

7

画面の明るさを設定する前に、「自動明るさ」が有効になっていないことを確認してください。Android 2.2 以降の SDK を使用している場合は、Settings>Display で手動で行うか、コードを使用して行うことができます。

何かのようなもの:

int brightnessMode = Settings.System.getInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE);
if (brightnessMode == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC) {
    Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE, Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
}

WindowManager.LayoutParams layoutParams = getWindow().getAttributes();
layoutParams.screenBrightness = 0.5F; // set 50% brightness
getWindow().setAttributes(layoutParams);

値が 0.0F から 1.0F の間であることを確認してください。-1.0F の値は、設定に保存されているデフォルトの明るさを使用します。ドキュメントによると、「デフォルトの 0 未満の値は、優先される画面の明るさを使用することを意味します。0 から 1 は、明るさを暗いから完全に明るいまで調整します。」

于 2011-02-23T11:58:46.943 に答える
0

0.0fとの間のscreenBrightnessの値1.0f、おそらくあなたの値が大きすぎます。旗を使ってWindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON画面の明るさを調整することもできます

于 2011-01-07T06:42:29.007 に答える