ANDROID 背光调节

原创 2013年12月06日 11:54:32

Android的屏幕亮度好像在2.1+的时候提供了自动调节的功能,所以,如果当开启自动调节功能的时候, 我们进行调节好像是没有一点作用的,这点让我很是无语,结果只有进行判断,看是否开启了屏幕亮度的自动调节功能。

/**
     * 判断是否开启了自动亮度调节
     *
     * @param aContext
     * @return
     */
    public static boolean isAutoBrightness(ContentResolver aContentResolver) {
        boolean automicBrightness = false;
        try {
            automicBrightness = Settings.System.getInt(aContentResolver,
                    Settings.System.SCREEN_BRIGHTNESS_MODE) == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC;
        } catch (SettingNotFoundException e) {
            e.printStackTrace();
        }
        return automicBrightness;
    }

然后就是要觉得当前的亮度了,这个就比较纠结了:

/**
     * 获取屏幕的亮度
     *
     * @param activity
     * @return
     */
    public static int getScreenBrightness(Activity activity) {
        int nowBrightnessValue = 0;
        ContentResolver resolver = activity.getContentResolver();
        try {
            nowBrightnessValue = android.provider.Settings.System.getInt(
                    resolver, Settings.System.SCREEN_BRIGHTNESS);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return nowBrightnessValue;
    }

那如何修改屏幕的亮度呢?

/**
     * 设置亮度
     *
     * @param activity
     * @param brightness
     */
    public static void setBrightness(Activity activity, int brightness) {
        // Settings.System.putInt(activity.getContentResolver(),
        // Settings.System.SCREEN_BRIGHTNESS_MODE,
        // Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
        WindowManager.LayoutParams lp = activity.getWindow().getAttributes();
        lp.screenBrightness = Float.valueOf(brightness) * (1f / 255f);
        activity.getWindow().setAttributes(lp);

    }

那么,能设置了,但是为什么还是会出现,设置了,没反映呢?

嘿嘿,那是因为,开启了自动调节功能了,那如何关闭呢?这才是最重要的:

/**
     * 停止自动亮度调节
     *
     * @param activity
     */
    public static void stopAutoBrightness(Activity activity) {
        Settings.System.putInt(activity.getContentResolver(),
                Settings.System.SCREEN_BRIGHTNESS_MODE,
                Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
    }

能开启,那自然应该能关闭了哟哟,那怎么关闭呢?很简单的:

/**
     * 开启亮度自动调节
     *
     * @param activity
     */
    public static void startAutoBrightness(Activity activity) {
        Settings.System.putInt(activity.getContentResolver(),
                Settings.System.SCREEN_BRIGHTNESS_MODE,
                Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC);
    }

至此,应该说操作亮度的差不多都有了,结束!

哎,本来认为是应该结束了,但是悲剧得是,既然像刚才那样设置的话,只能在当前的activity中有作用,一段退出的时候,会发现毫无作用,悲剧,原来是忘记了保存了。汗!

/**
     * 保存亮度设置状态
     *
     * @param resolver
     * @param brightness
     */
    public static void saveBrightness(ContentResolver resolver, int brightness) {
        Uri uri = android.provider.Settings.System
                .getUriFor("screen_brightness");
        android.provider.Settings.System.putInt(resolver, "screen_brightness",
                brightness);
        // resolver.registerContentObserver(uri, true, myContentObserver);
        resolver.notifyChange(uri, null);
    }

YY滴,这回该差不多了吧,汗!

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

和菜鸟一起学android4.0.3源码之lcd屏幕背光调节

周六的中午还是依旧来了公司,本来也没有打算来的,既然来了,那就把上次遗留下来的一些问题给解决吧,把android下的pwm调lcd背光给总结下吧。关于android的背光,是用pwm波来控制的,通过占...

android自动调节屏幕亮度自动调节流程解析

屏幕亮度自动调节: 主要是从Sensor分析之中分离出来分析LIGHT 光线感应器,因此就分析一下自动调节屏幕亮度(手机随着光线的强度自我调节,也就是在亮的光线下屏幕自动调亮一些,暗的时候就自动调暗...

Android7.0背光调节

涉及类:   一. 简述 Android屏幕背光属于Android系统中display模块,display是从Power中分出来的,所以和Power有着密不可分的关系。背光调节中,又可以分为手动调节...

Adnroid屏幕亮度调节——设置到指定的值与恢复到原来的值

应用场景:手机上有一张条形码图片,需要用扫码设备扫描。当手机屏幕太暗时,识别度低,因此我就想当切换到条形码图片所在的界面时,调亮屏幕方便扫码设备识别。当离开该界面时恢复用户原来设置的屏幕亮度调节模式和...

Android 之ActivityThead、ActivityManagerService 与activity的管理和创建

在android中,Activity是四大组件中比较重要的一个(当然其他的也比较重要),那么android中是怎样管理这些activity的?应用的进程和主线程是怎么创建的,应用的消息循环又是在什么时...

Android tips(八)-->Android Studio打包apk,aar,jar包

文本我们将讲解android studio打包apk,aar,jar包的相关知识。apk包就是android系统的安装包,这里没什么好说的,aar包是android中独有的类库包,而jar包是java...

Unity集成内嵌网页插件-支持Android和IOS

本文所用到的插件,是修改自一个日本人keijiro的代码。他的源码地址为:https://github.com/keijiro/unity-webview-integration 为更易于使用,本插...

Unity中性能优化的一些经验与总结(脚本优化篇)

欢迎光顾本人的小站:原文链接最近一个星期,公司的项目正在做项目调优。也在不断的尝试当中找到了一些优化代码性能的思路。发现经常是在不经意的一些小地方,大大拉低了系统整体的性能。在编写Unity程序的时候...

Unity3d开发(十一)编辑器DrawCall参数解析

对于Unity运行场景中,有许多可以标记场景状况的参数。这篇文章主要探讨这些参数的意义,其中如果有错误欢迎指正。

android studio library生成jar包和aar的方法总结

写了个工具包。然后想生成成jar包或者arr的资源格式,网上找了方法,这边算是总结下 首先是生成jar包 首先在library的工程目录下选中它的build.gradle文件并打开 在文...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)