如何在Android中增加相机的亮度

5

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


你解决了这个问题吗? - Tomero Indonesia
4个回答

7

感谢您的回复,史蒂夫。但是,这两个函数在API级别7中都不可用。 - Sunil Pandey
2
啊,你是不是特别需要照片拍摄时的亮度?或者可以在照片拍摄后立即对图像进行后期处理来增加亮度?也许这只是一个无法解决的限制,除非升级操作系统。 - Steve

0

你可以传递你的相机参数


0
尝试使用 parameters.set("iso", 400); 或者在您的设备上支持的任何 int 值。

-1

使用以下方法来增加或减少亮度(适用于活动,因此您可以在摄像机或活动中任何地方使用),它的效果很好。这对任何人都有帮助。

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

    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系统的亮度,而不是相机预览的亮度。 - Zar E Ahmer
我们想要增加自定义相机(预览)的亮度,而不是屏幕亮度。如果您完成了,请分享。 - Chetan Chaudhari
这不是相机的亮度。它是正常的亮度。 - Bipin Bharti

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接