Как изменить яркость со значениями датчика освещенности (люкс) в Android

У меня есть приложение, которое может изменять яркость системы и яркость окна с помощью 5 различных кнопок (от самых темных до самых ярких). Когда я выбираю кнопку "Темный", значения равны 0f*255 (максимальное значение для яркости) или "Низкий свет", значения равны 0,25f*255 и т. Д.

Как только яркость выбрана с помощью кнопки, я бы хотел управлять яркостью с помощью датчика освещенности. Поэтому, когда я выбираю "Темный", я хочу изменить яркость "внутри" этой кнопки - со значением люкс, скажем, 0-30, где 30 - это максимум =1 (самый яркий для только темной кнопки), а 15 - это половина яркости., И если я выберу "Низкое освещение", значение люкса может быть 30-60, где 30 - самая низкая для этой кнопки, а 60 - самая яркая, и так далее.

Значение яркости должно быть достаточно точным для выбранной кнопки, но все же немного изменить яркость в зависимости от значения люкс с интервалом, который подключен к кнопке.

Я знаю, что мне нужно использовать какой-то процент, чтобы значения менялись в зависимости от люкс и яркости, но я не знаю, как использовать значение люкс с кнопками.

Код ниже для изменения яркости экрана и кнопок

public void changeScreenBrightness(float brightness) {
    mBrightness = brightness;
try {
        if (rbSystemCheck) {
            if (!Settings.System.canWrite(this)) {
                Intent i = new Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS);
                startActivity(i);
            } else {
                Settings.System.putInt(contentResolver,
                        Settings.System.SCREEN_BRIGHTNESS, (int) (mBrightness * 255));
            }
        } else if (rbWindowCheck) {
            WindowManager.LayoutParams mLayoutParams = window.getAttributes();
            mLayoutParams.screenBrightness = mBrightness;
            window.setAttributes(mLayoutParams);
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}


public void onClick(View v) {
    if (v == btnDark) {
        changeScreenBrightness(0f);
        tvCurrentPreset.setText("Preset = Dark");
    } else if (v == btnLowLight) {
        changeScreenBrightness(0.25f );
        tvCurrentPreset.setText("Preset = Low light");
    } else if (v == btnBright) {
        changeScreenBrightness(0.5f);
        tvCurrentPreset.setText("Preset = Bright");
    } else if (v == btnVeryBright) {
        changeScreenBrightness(0.75f);
        tvCurrentPreset.setText("Preset = Very bright");
    } else if (v == btnInsanelyBright) {
        changeScreenBrightness(1f);
        tvCurrentPreset.setText("Preset = Insanely bright");
    }

}

Как изменить яркость после выбранной кнопки (которая будет предварительно установлена ​​после нажатия) в зависимости от значения датчика освещенности?

0 ответов

Другие вопросы по тегам