美文网首页
Android设置屏幕亮度

Android设置屏幕亮度

作者: 格老子 | 来源:发表于2017-03-10 15:56 被阅读3059次

使用场景

最近在研究AndroidL Settings的代码,写了一个简单的控件来操控屏幕亮度。
其实,调节屏幕亮度的场景应用很广,例如很多视频应用都响应touch事件来进行亮度调节。
屏幕亮度调节模式
首先,需要明确屏幕亮度有两种调节模式:
Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC:值为1,自动调节亮度。
Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL:值为0,手动模式。
如果需要实现亮度调节,首先需要设置屏幕亮度调节模式为手动模式
设置方法如下:

public void setScrennManualMode() {
    ContentResolver contentResolver = getActivity().getContentResolver();
    try {
        int mode = Settings.System.getInt(contentResolver,
                Settings.System.SCREEN_BRIGHTNESS_MODE);
        if (mode == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC) {
            Settings.System.putInt(contentResolver, Settings.System.SCREEN_BRIGHTNESS_MODE,
                    Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
        }
    } catch (Settings.SettingNotFoundException e) {
        e.printStackTrace();
    }
}   

获取屏幕亮度值

这里需要了解:

屏幕最大亮度为255。
屏幕最低亮度为0。
屏幕亮度值范围必须位于:0~255。
设置屏幕亮度的方法:

private int getScreenBrightness() {
    ContentResolver contentResolver = getActivity().getContentResolver();
    int defVal = 125;
    return Settings.System.getInt(contentResolver,
            Settings.System.SCREEN_BRIGHTNESS, defVal);
}

设置系统屏幕亮度值

在设置系统屏幕亮度前,需要保证AndroidManifest.xml中声明如下权限:

<uses-permission android:name="android.permission.WRITE_SETTINGS"/>

当屏幕亮度模式为0即手动调节时,可以通过如下代码设置屏幕亮度:

private void saveScreenBrightness() {
    setScrennManualMode();
    ContentResolver contentResolver = getActivity().getContentResolver();
    int value = 255; // 设置亮度值为255
    Settings.System.putInt(mContentResolver,
            Settings.System.SCREEN_BRIGHTNESS, value);
}

设置当前窗口亮度

很多视频应用,在touch事件处理屏幕亮度时,并不是修改的系统亮度值,而是修改当前应用所在窗口的亮度。具体做法就是修改LayoutParams中的screenBrightness属性。参考代码如下:

private void setWindowBrightness(int brightness) {
    Window window = getWindow();
    WindowManager.LayoutParams lp = window.getAttributes();
    lp.screenBrightness = brightness / 255.0f;
    window.setAttributes(lp);
}

from:http://blog.csdn.net/wzy_1988/article/details/49472611

相关文章

  • Android设置屏幕亮度

    使用场景 最近在研究AndroidL Settings的代码,写了一个简单的控件来操控屏幕亮度。其实,调节屏幕亮度...

  • Android设置屏幕亮度

    使用场景 最近在研究AndroidL Settings的代码,写了一个简单的控件来操控屏幕亮度。其实,调节屏幕亮度...

  • Android设置/获取屏幕亮度

    前言 在Android开发过程中,我们时不时会涉及到屏幕亮度调节问题,为的是增加用户体验。那么今天就来讲讲屏幕亮度...

  • iOS 屏幕相关(屏幕亮度,禁止锁屏,获取当前屏幕亮度)

    如果您在阅读我的文章时有疑问 , 请点击这里获取当前屏幕亮度 设置屏幕亮度(屏幕亮度 从 0-1 ) 设置屏幕...

  • adb:设置手机屏幕亮度

    adb:设置手机屏幕亮度 在自动化测试过程中,有时可能会需要调节Android设备屏幕亮度的场景时,可借助adb命...

  • Android : 屏幕亮度的调整

    关于屏幕亮度的调整可以从以下几个方面入手: 判断是否开启了自动亮度调节 **获取屏幕的亮度 ** **设置亮度 *...

  • ArchLinux调节屏幕亮度

    作者:crane-yuan 日期:2017-04-01 调整屏幕亮度命令 设置默认屏幕亮度 编写一个调整屏幕亮度的...

  • 坚果部分机型屏幕亮度调整问题

    小追兵专栏 坚果部分机型屏幕亮度调整问题 我们在设置屏幕亮度的时候,会给设置0-255的亮度值,0为最暗,255为...

  • IOS设置屏幕亮度

    1、获取系统当前的亮度值 2、设置系统屏幕的亮度 END.

  • Android设置屏幕亮度及Alpha值

    Android设置屏幕亮度及Alpha值 本文首发于我的微信公众号,更多干货文章,请扫描二维码订阅哦:image您...

网友评论

      本文标题:Android设置屏幕亮度

      本文链接:https://www.haomeiwen.com/subject/pcfogttx.html