【问题标题】:How to increase brightness of camera in Android如何在Android中增加相机的亮度
【发布时间】:2011-03-25 12:37:39
【问题描述】:

如何更改相机的亮度级别?

【问题讨论】:

  • 这个问题你解决了吗?

标签: android camera brightness


【解决方案1】:

使用@appleskin 指出的相机参数,这些方法中的任何一种都有帮助吗? setWhiteBalance()setExposureCompensation()

【讨论】:

  • 感谢史蒂夫的热心回复,但这两个功能在 api 级别 7 中均不可用
  • 啊,你是不是特别需要拍照时的亮度?或者您可以对图像进行后处理以使其在拍摄后立即变亮?这可能是一个限制,如果不升级操作系统就无法解决。
【解决方案2】:

您可以通过相机parameters

【讨论】:

    【解决方案3】:

    试试 parameters.set("iso", 400);或您的设备支持的任何 int 值

    【讨论】:

      【解决方案4】:

      使用以下方式来增加或减少亮度(它用于活动,因此您也可以在任何地方用于相机或活动),它工作正常。所以它对任何人都有帮助。

      在您的活动中调用以下函数:

          private void setSeekbar() {
      
          seekBar.setMax(255);
          float curBrightnessValue = 0;
          try {
              curBrightnessValue = android.provider.Settings.System.getInt(
                      getContentResolver(),
                      android.provider.Settings.System.SCREEN_BRIGHTNESS);
          } catch (SettingNotFoundException e) {
              e.printStackTrace();
          }
      
          int screen_brightness = (int) curBrightnessValue;
          seekBar.setProgress(screen_brightness);
      
          seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
              public void onStopTrackingTouch(SeekBar seekBar) {
                  // Nothing handled here
              }
      
              public void onStartTrackingTouch(SeekBar seekBar) {
                  // Nothing handled here
              }
      
              public void onProgressChanged(SeekBar seekBar, int progress,
                      boolean fromUser) {
                  // Set the minimal brightness level
                  // if seek bar is 20 or any value below
                  screenBrightness(progress);
                  editor.putInt("brightness",progress);
                  editor.commit();
              }
          });
        }
      

      screenBrightness 的方法:

       private void screenBrightness(double newBrightnessValue) {
          /*
           * WindowManager.LayoutParams settings = getWindow().getAttributes();
           * settings.screenBrightness = newBrightnessValue;
           * getWindow().setAttributes(settings);
           */
                WindowManager.LayoutParams lp = getWindow().getAttributes();
                float newBrightness = (float) newBrightnessValue;
                lp.screenBrightness = newBrightness / (float) 255;
                getWindow().setAttributes(lp);
       }
      

      SeekBarChangeListener之前的以下方法调用:

        void changeBrightnessMode() {
      
          try {
              int 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);
              }
      
          } catch (Exception e) {
              // do something useful
      
          }
      }
      

      【讨论】:

      • 您发布的代码让您调整Android系统的亮度而不是cameraPreview亮度
      • 我们希望增加自定义相机(预览)的亮度而不是屏幕亮度。如果你这样做了,请分享。
      • 这不是相机的亮度。亮度正常
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-10
      • 2015-01-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多