1

我在那里,我的应用程序上有一个搜索栏来更改亮度及其工作。然后问题是,当我按下后退按钮导航到另一个活动时,亮度会恢复到默认值..

这是我更改亮度的代码:

private void applyBrightnessListener() {
    SeekBar brightnessControl = (SeekBar) findViewById(R.id.brightnessControl);

    brightnessControl.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
        @Override
        public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) {
            // TODO Auto-generated method stub
            float BackLightValue = (float)arg1/100;
            WindowManager.LayoutParams layoutParams = getWindow().getAttributes();
            layoutParams.screenBrightness = BackLightValue;
            getWindow().setAttributes(layoutParams);
            android.provider.Settings.System.putInt(
                GeneralSettings.this.getContentResolver(),
                android.provider.Settings.System.SCREEN_BRIGHTNESS,
                (int)BackLightValue);
        }

        @Override
        public void onStartTrackingTouch(SeekBar arg0) {
        // TODO Auto-generated method stub
        }

        @Override
        public void onStopTrackingTouch(SeekBar arg0) {
        // TODO Auto-generated method stub
        }
    });
}

非常感谢提前;)

4

1 回答 1

1

遗憾的是,您需要跟踪该亮度,并为每个活动设置它。您不能设置一次并保留它。

因此,您需要将值存储在您的首选项或其他方式中,然后当您开始每个活动时,加载首选项并将其设置在您的活动中。

一种好方法是继承 Activity,并将此代码放在 onCreate 方法中。

                WindowManager.LayoutParams layoutParams = getWindow().getAttributes();
                layoutParams.screenBrightness = savedBackLightValue;
                getWindow().setAttributes(layoutParams);
于 2013-05-12T15:52:19.113 回答