【问题标题】:Setting full screen brightness in an Android activity在 Android Activity 中设置全屏亮度
【发布时间】:2014-05-06 11:06:21
【问题描述】:

我正在使用这种方法将屏幕设置为全亮度。

@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);        
    }
}

如果我想在 Activity 屏幕的整个生命周期中设置全亮度,onCreate 方法是调用它的最佳位置吗?

是否有可以实现此目的的 XML 标志? android:keepScreenOn="true" 之类的东西反映了在代码中添加 WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON 的功能?

【问题讨论】:

    标签: android android-activity screen screen-brightness window-managers


    【解决方案1】:

    将这些行放在所有用于查看页面的java文件的oncreate方法中,

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

    这将解决您的问题,快乐编码...

    【讨论】:

    • 您也可以使用常量WindowManager.LayoutParams.BRIGHTESS_OVERRIDE_FULL 代替1.0F。还有BRIGHTNESS_OVERRIDE_NONE将亮度重置为设备设置,BRIGHTNESS_OVERRIDE_OFF将亮度一直调低。
    • @Bryan:“BRIGHTNESS_OVERRIDE_FULL”不是“BRIGHTESS_OVERRIDE_FULL”
    【解决方案2】:

    对于所有试图在DialogFragment 中实现相同目标的人。将参数应用于getActivity().getWindow() 将无济于事,因为Activity 的窗口与Dialog 正在运行的窗口不同。所以你必须使用对话框的窗口 - 请参阅下面的 sn-p :

    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);
    

    并回答原来的问题: 不,没有办法通过 XML 设置。

    【讨论】:

      【解决方案3】:

      Kotlin 版本使用常量而不是浮点数:(不适用于对话框)

      private fun setScreenBright() {
          with(window){
              addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
              attributes = attributes.also { 
                  it.screenBrightness = WindowManager.LayoutParams.BRIGHTNESS_OVERRIDE_FULL
              }
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-08-28
        • 1970-01-01
        • 2011-10-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多