试图在Android手机上设置屏幕亮度

时间:2011-09-26 09:20:29

标签: android null window screen brightness

我正在尝试设置屏幕亮度但是当我尝试使用this.getWindow()获取当前窗口时,我得到null。为什么是这样?我将在setBrightness()方法中发布所有代码。

System.putInt(getContentResolver(), System.SCREEN_BRIGHTNESS,
            brightness);
Window window = getWindow();
WindowManager.LayoutParams lp = window.getAttributes();
lp.screenBrightness = brightness / (float) 255;
window.setAttributes(lp);

3 个答案:

答案 0 :(得分:0)

不要使用System.putInt()...你已经在lp中设置了screenBrightness!

以下代码有效:

Window window = getWindow();
float brightness = 100.0f;
WindowManager.LayoutParams lp = window.getAttributes();
lp.screenBrightness = brightness/255.0f;
window.setAttributes(lp);

答案 1 :(得分:0)

如果您使用的是搜索栏,请尝试以下这些行

System.putInt(cResolver, System.SCREEN_BRIGHTNESS, brightness);
LayoutParams layoutpars = window.getAttributes();
layoutpars.screenBrightness = brightness / (float)255;
window.setAttributes(layoutpars);

答案 2 :(得分:0)

如果你在像getWindow()这样的

之前从片段中添加getActivity()来调用它
getActivity().getWindow().setAttributes(layoutParams);

如果使用seekbar不要让你的brogress为0,因为它会使你的屏幕变得完全黑暗(在android 2.3上)