我想设置我的Android应用程序的亮度而不是我的手机。 当我改变我的Android应用程序的亮度,这不会影响我的手机亮度。 所以帮我解决这个问题。 提前谢谢。
答案 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
P.S:您必须处理所有事件,例如onPause()
,onResume()
,onBackPressed()
等