Setting full screen brightness in an Android activity

倖福魔咒の 提交于 2019-11-30 17:29:43

问题


I'm using this method to set the screen to full brightness.

@SuppressLint("NewApi") 
private void setFullBright() {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.CUPCAKE) {
        WindowManager.LayoutParams windowParams = getWindow().getAttributes();
        windowParams.screenBrightness = 1.0f;
        getWindow().setAttributes(windowParams);        
    }
}

If I want the full brightness to be set on the entire life of the Activity's screen, is the onCreate method the best place to call it?

Is there an XML flag that can achieve this? Something like android:keepScreenOn="true" that mirrors the functionality of adding WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON in code?


回答1:


Put these lines in the oncreate method of all java files which are used to view pages,

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

This will solve your problem, Happy coding...




回答2:


For everyone who's trying to achieve the same in a DialogFragment. Applying the params to getActivity().getWindow() won't help since the window of the Activity is not the same as the window the Dialog is running in. So you have to use the window of the dialog - see following snippet:

getDialog().getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
WindowManager.LayoutParams params = getDialog().getWindow().getAttributes();
params.screenBrightness = WindowManager.LayoutParams.BRIGHTNESS_OVERRIDE_FULL;
getDialog().getWindow().setAttributes(params);

And to answer the original question: No there is no way to set this via XML.



来源:https://stackoverflow.com/questions/23492978/setting-full-screen-brightness-in-an-android-activity

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!