2011-10-09 42 views
7

現在の画面の明るさをどのように取得しますか?Androidの画面の明るさの値

以下の方法がsetBrightness(100)を呼び出すことにより、maxに明るさを設定するため正常に動作します:

private void setBrightness(int brightness) { 
    WindowManager.LayoutParams layoutParams = getWindow().getAttributes(); 
    layoutParams.screenBrightness = brightness/100.0f; 
    getWindow().setAttributes(layoutParams); 
} 

Imは、以下を達成しようとしている:

  1. スタート活動とは、現在の輝度値を保存
  2. 最初のVへの最大
  3. リセット明るさに
  4. 設定の明るさ特定のイベントにALUE

多くの感謝!

+0

設定前layoutParams.screenBrightnessの値は何ですか? – ZelluX

答えて

15

WindowManager.LayoutParams layoutParams = getWindow().getAttributes(); 
layoutParams.screenBrightness = -1f; 
getWindow().setAttributes(layoutParams); 

0未満の値をデフォルト値に輝度をリセットする

int curBrightnessValue = android.provider.Settings.System.getInt(getContentResolver(), android.provider.Settings.System.SCREEN_BRIGHTNESS); 

、次いで

WindowManager.LayoutParams layoutParams = getWindow().getAttributes(); 
    layoutParams.screenBrightness = curBrightnessValue/100.0f; 
    getWindow().setAttributes(layoutParams); 
+1

ありがとうございましたMichele!それはtry/catchブロックで割り当てを囲むことで完璧にうまくいった – lukuluku

+0

@Michele:なぜ最初の行を実行するのですか?私はlint "int curBrightnessValue = ..."と書いたが、うまくいきません。途中で明るさの許可はありますか? –

+0

@Micheleありがとう、はい私はあなたの声明を編集し、それは本当に実行されます。 "最終INTレベル= Settings.System.getInt(getContentResolver()、android.provider.Settings.System.SCREEN_BRIGHTNESS、-1); " は、このコードを使用する場合layoutParams.screenBrightness = 0 'が原因 '設定するよう、注意してください –

2

を試し、デフォルトでは、好適なスクリーンを使用することを意味します輝度。

がMAX明るさに画面を設定するには(たとえば、あなたが表示さ:

private void setScreenBrightnessTo(float brightness) { 
     WindowManager.LayoutParams lp = getActivity().getWindow().getAttributes(); 
     if (lp.screenBrightness == brightness) { 
      return; 
     } 

     lp.screenBrightness = brightness; 
     getActivity().getWindow().setAttributes(lp); 
    } 

用途(おそらく下のAPI/wの作品)17+

+0

素晴らしいです!どのようにこれはより多くのupvotesを持っていないのですか? – avalancha

関連する問題