本文共 2229 字,大约阅读时间需要 7 分钟。
Android屏幕亮度调节方法说明
Android系统提供了多种方式来调节屏幕亮度,本文将详细介绍几个常用的实现方法。
一、检查自动亮度调节状态通过调用系统API,我们可以判断当前是否启用了自动亮度调节功能。以下是一个实现示例:
public static boolean IsAutoBrightness(Activity context) {boolean IsAutoBrightness = false;try {IsAutoBrightness = (Settings.System.getInt(context.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE) ==Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC);} catch (Settings.SettingNotFoundException e) {e.printStackTrace();}return IsAutoBrightness;}
二、获取当前屏幕亮度值要获取当前屏幕亮度值,可以使用以下方法:
public static int getCurrentScreenBrightness(Activity context) {int nowBrightnessValue = 0;ContentResolver resolver = context.getContentResolver();try {nowBrightnessValue = android.provider.Settings.System.getInt(resolver, SCREEN_BRIGHTNESS);} catch (Exception e) {e.printStackTrace();}return nowBrightnessValue;}
三、设置当前界面亮度若需设置当前活动界面的亮度,可以参考以下代码:
public static void setCurWindowBrightness(Activity context, int brightness) {if (IsAutoBrightness(context)) {stopAutoBrightness(context);}if (brightness < 1) {brightness = 1;}if (brightness > 255) {brightness = 255;}WindowManager.LayoutParams lp = context.getWindow().getAttributes();lp.screenBrightness = Float.valueOf(brightness) * (1f / 255f);context.getWindow().setAttributes(lp);}
四、设置系统屏幕亮度如果希望设置系统整体亮度,可以采用下面的方法:
public static void setSystemBrightness(Activity context, int brightness) {if (brightness < 1) {brightness = 1;}if (brightness > 255) {brightness = 255;}saveBrightness(context, brightness);}
五、手动停止亮度自动调节若需要手动关闭亮度自动调节,可以执行下列操作:
public static void stopAutoBrightness(Context context) {Settings.System.putInt(context.getContentResolver(), {Settings.System.SCREEN_BRIGHTNESS_MODE =Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL;});}
六、开启亮度自动调节手动启用亮度自动调节的实现如下:
public static void startAutoBrightness(Context context) {Settings.System.putInt(context.getContentResolver(),Settings.System.SCREEN_BRIGHTNESS_MODE,Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC);}
七、保存亮度设置要确保设置持久有效,请参考以下方法:
public static void saveBrightness(Context context, int brightness) {Uri uri = android.provider.Settings.System.getUriFor(SCREEN_BRIGHTNESS);Settings.System.putInt(context.getContentResolver(), SCREEN_BRIGHTNESS, brightness);context.getContentResolver().notifyChange(uri, null);}
转载地址:http://eeriz.baihongyu.com/