调节屏幕亮度
调节屏幕的亮度,分为:
1、调节当前应用的Window视图的亮度。当离开此页面,或则退出App时,则会恢复调节前的亮度。
2、调节系统的亮度。不管离开此页面,还是退出App,都不会恢复之前的亮度。(若系统设置了“自动调节亮度”模式,直接更改则不会改变亮度,需提前取消“自动调节亮度”)
sample:
1、更改亮度调节模式:
/*
将亮度调节模式为:手动调节模式。
*/
Uri uriMode = Settings.System.getUriFor(Settings.System.SCREEN_BRIGHTNESS_MODE);
Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE, Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
getContentResolver().notifyChange(uriMode, null);
2、更改系统的屏幕亮度:
/*
更改系统的屏幕亮度。
*/
Uri uri = Settings.System.getUriFor(Settings.System.SCREEN_BRIGHTNESS);
Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, (255/10 * i));
getContentResolver().notifyChange(uri, null);
Toast.makeText(MainActivity.this, "更改System的屏幕亮度" + (255/10 * i), Toast.LENGTH_SHORT).show();
3、更改当前界面、App的屏幕亮度:
/*
更新当前应用的屏幕的亮度,但是并不会更改系统的亮度。
*/
WindowManager.LayoutParams layoutParams = getWindow().getAttributes();
layoutParams.screenBrightness = Float.valueOf(i * 1f / 10);
getWindow().setAttributes(layoutParams);
Toast.makeText(MainActivity.this, "更改应用的屏幕亮度" + Float.valueOf(i * 1f / 10) + "jjj" + Float.valueOf(i * 1f % 10), Toast.LENGTH_SHORT).show();