如何在Android应用程序内设置屏幕亮度本地

时间:2014-09-26 11:04:15

标签: android

我想设置我的Android应用程序的亮度而不是我的手机。 当我改变我的Android应用程序的亮度,这不会影响我的手机亮度。 所以帮我解决这个问题。 提前谢谢。

2 个答案:

答案 0 :(得分:2)

无需提供任何权限,只需在您的Seekbar方法

中设置以下参数
public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) {
      // TODO Auto-generated method stub
      float BackLightValue = (float)arg1/100;
      BackLightSetting.setText(String.valueOf(BackLightValue)); // BackLignt is Textview to display value

      WindowManager.LayoutParams layoutParams = getWindow().getAttributes(); // Get Params
      layoutParams.screenBrightness = BackLightValue; // Set Value
      getWindow().setAttributes(layoutParams); // Set params


     }

答案 1 :(得分:0)

获取并保存设备的当前亮度,然后更改设备的亮度(当应用程序开始运行时),以及应用程序关闭时使用保存的亮度级别恢复为原始亮度。

获取屏幕亮度级别:

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

设置屏幕亮度级别:

android.provider.Settings.System.putInt(getContext().getContentResolver(),
android.provider.Settings.System.SCREEN_BRIGHTNESS, value); //<-- 1-225

应用清单权限:

<uses-permission android:name="android.permission.WRITE_SETTINGS" />

WindowManager.LayoutParams layoutParams = getWindow().getAttributes();
layoutParams.screenBrightness = curBrightnessValue/100.0f; //<-- your value here
getWindow().setAttributes(layoutParams);

这是一个tutorial link

Another SO Post Link

P.S:您必须处理所有事件,例如onPause()onResume()onBackPressed()