Android 屏幕亮度調(diào)節(jié)

屏幕亮度調(diào)節(jié)模式:

Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC:值為1,自動(dòng)調(diào)節(jié)亮度。

Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL:值為0,手動(dòng)模式。

設(shè)置屏幕亮度調(diào)節(jié)模式為手動(dòng)模式


    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

設(shè)置屏幕亮度

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

設(shè)置系統(tǒng)亮度權(quán)限申明

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

設(shè)置當(dāng)前窗口亮度

很多視頻應(yīng)用,在touch事件處理屏幕亮度時(shí),并不是修改的系統(tǒng)亮度值,而是修改當(dāng)前應(yīng)用所在窗口的亮度。具體做法就是修改LayoutParams中的screenBrightness屬性。參考代碼如下:

private void setWindowBrightness(int brightness) {
    Window window = getWindow();
    WindowManager.LayoutParams lp = window.getAttributes();
    lp.screenBrightness = brightness / 255.0f;
    window.setAttributes(lp);
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容