android调节屏幕亮度

一:只改变当前程序android屏幕亮度
(1)方法:
lp.screenBrightness 取值 0.0 -- 1.0 ※设定值(float)的范围,默认小于 0(系统设定)、0.0(暗)~1.0(亮) ※调用处理的地方,例如, Activity.onCreate()等等

代码:
WindowManager.LayoutParams lp = getWindow().getAttributes();

lp.screenBrightness = 1.0f;

getWindow().setAttributes(lp);

  注:1、b是一个浮点数 从0~1 ,表示亮度
         2、当我们遇到把Activity做为子Activity潜入到TabActivity 或者 ViewGroup 类容器时,通常上面的方法设置无法取得成功。
              在子Activity中,屏幕亮度不发生改变。因为调节亮度作用域发生了改变,之前是在Activity里面对亮度修改。
              而现在是作为子activity对TabActivity或ViewGroup 容器进行修改。
              因此不能成功,需要通过getParent()方法获取器Parent,然后设置。
          3、


(2)恢复

当离开当前Acitivity时,屏幕亮度会恢复到原先的亮度。另外将lp.screenBrightness 设为 -1(WindowManager.LayoutParams.BRIGHTNESS_OVERRIDE_NONE),也会让屏幕恢复到原先的亮度(即系统设置)。


(3)最小亮度

WindowManager.LayoutParams.BRIGHTNESS_OVERRIDE_NONE,官方文档说这个值可以将屏幕亮度设置到最低亮度(Lowest Brightness)。实际意识是将屏幕设置到全黑,屏幕也无法响应触控了。
在G3(CM6)上,将屏幕设置到最低亮度值是0.004(精度0.001),这时屏幕基本全黑,但仍能控制。低于0.004(精度0.001)时,屏幕便失去控制。0.01也是个要记录的值,屏幕亮度足够低,当仍能看到东西。这些值应该是和设备有关的,不能乱设。
原文地址:https://www.cnblogs.com/netcorner/p/4667315.html