我想製作一個滑塊,它將改變屏幕亮度。我已經成功與上面的代碼如何在活動完成後保持亮度設置?
做亮度代碼:
BackLightControl.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
// TODO Auto-generated method stub
float BackLightValue = (float)progress/100.0f;
int brightnessMode;
try {
brightnessMode = Settings.System.getInt(getContentResolver(),
Settings.System.SCREEN_BRIGHTNESS_MODE);
if (brightnessMode == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC) {
Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE,
Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
}
BackLightSetting.setText(String.valueOf(BackLightValue));
WindowManager.LayoutParams layoutParams = getWindow().getAttributes();
layoutParams.screenBrightness = BackLightValue;
getWindow().setAttributes(layoutParams);
} catch (SettingNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void onStopTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
});
}
}
的問題是,它的工作,我能看到的亮度變化而滑動滑塊,但一旦活動結束,它就返回到先前的亮度級別,這是毫無意義的。雖然在使用滑塊時禁用的自動背光設置仍然存在。 我做錯了什麼? 另外,如何防止滑塊爲0,因爲屏幕熄滅,只有通過強制關閉應用程序我可以重置更改。
感謝您的快速和有價值的答案。我已經從您的鏈接中讀取了線索,以及我發現的其他一些相關內容,但我沒有設法解決它。爲此我開始了這個線程。 –