如何设置屏幕亮度?

问题描述 投票:1回答:2

我想通过点击按钮来调整屏幕亮度,所以当背景为白色时,屏幕亮度应该是最大的,同时如果背景是黑色,屏幕亮度应该是最小的,但是我得到一个错误:NullPointerException ...这里是我的代码:

public void lamp2(boolean mode){

        if(mode){

            r.setBackgroundColor(Color.WHITE);
            btn.setText("Turn OFF");
            btn.setTextColor(Color.RED);
            WindowManager.LayoutParams lp = getWindow().getAttributes();
            lp.screenBrightness = 90 / 100.0f;
            getWindow().setAttributes(lp);
            this.mode = true;
        }

        else if(!mode){

            r.setBackgroundColor(Color.BLACK);
            btn.setText("Turn ON");
            btn.setTextColor(Color.GREEN);
            WindowManager.LayoutParams lp = getWindow().getAttributes();
            lp.screenBrightness = 100 / 100.0f;
            getWindow().setAttributes(lp);
            this.mode = false;
        }
    }
android screen brightness
2个回答
7
投票

把这些线放到最大

WindowManager.LayoutParams params = getWindow().getAttributes();
params.screenBrightness = 1.0f;
getWindow().setAttributes(params);

把这些线放到最低限度

WindowManager.LayoutParams params = getWindow().getAttributes();
params.screenBrightness = 0.1f;
getWindow().setAttributes(params);

0
投票

如果要管理活动的亮度,则必须在onResume(或onCreate)方法中使用以下代码:

此代码在调用时会更改屏幕的亮度,但不会更改系统的亮度参数(这是一种很好的做法)。当您的活动被销毁(完成)时,亮度将恢复正常。您的清单中无需请求许可,也不需要在退出应用程序时设置亮度值。简而言之,您在管理屏幕亮度时使用此代码。

 override fun onCreate(savedInstanceState: Bundle?) {
        handleScreenBrightness()
        super.onCreate(savedInstanceState)


    }


    private fun handleScreenBrightness() {
        val params = window.attributes
        params.screenBrightness = 1.0f// 0.0 - 1.0
        window.attributes = params
        window.addFlags(WindowManager.LayoutParams.FLAGS_CHANGED)
    }
© www.soinside.com 2019 - 2024. All rights reserved.