mirror of
				https://github.com/SimpleMobileTools/Simple-Camera.git
				synced 2025-06-27 09:02:59 +02:00 
			
		
		
		
	fix too dark image preview on some devices
This commit is contained in:
		| @@ -18,6 +18,7 @@ import android.os.Build | ||||
| import android.os.Handler | ||||
| import android.os.HandlerThread | ||||
| import android.util.DisplayMetrics | ||||
| import android.util.Range | ||||
| import android.util.Size | ||||
| import android.util.SparseIntArray | ||||
| import android.view.MotionEvent | ||||
| @@ -458,6 +459,7 @@ class PreviewCameraTwo : ViewGroup, TextureView.SurfaceTextureListener, MyPrevie | ||||
|                     } else { | ||||
|                         mPreviewRequestBuilder!!.apply { | ||||
|                             set(CaptureRequest.CONTROL_AF_MODE, CaptureRequest.CONTROL_AF_MODE_CONTINUOUS_PICTURE) | ||||
|                             set(CaptureRequest.CONTROL_AE_TARGET_FPS_RANGE, getFrameRange()) | ||||
|                             setFlashAndExposure(this) | ||||
|                             mPreviewRequest = build() | ||||
|                         } | ||||
| @@ -490,6 +492,23 @@ class PreviewCameraTwo : ViewGroup, TextureView.SurfaceTextureListener, MyPrevie | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private fun getFrameRange(): Range<Int> { | ||||
|         val ranges = getCameraCharacteristics().get(CameraCharacteristics.CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES) | ||||
|         var currRangeSize = -1 | ||||
|         var currMinRange = 0 | ||||
|         var result: Range<Int>? = null | ||||
|         for (range in ranges) { | ||||
|             val diff = range.upper - range.lower | ||||
|             if (diff > currRangeSize || (diff == currRangeSize && range.lower > currMinRange)) { | ||||
|                 currRangeSize = diff | ||||
|                 currMinRange = range.lower | ||||
|                 result = range | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         return result!! | ||||
|     } | ||||
|  | ||||
|     private fun updatePreview() { | ||||
|         try { | ||||
|             mPreviewRequestBuilder!!.set(CaptureRequest.CONTROL_MODE, CameraMetadata.CONTROL_MODE_AUTO) | ||||
| @@ -565,6 +584,7 @@ class PreviewCameraTwo : ViewGroup, TextureView.SurfaceTextureListener, MyPrevie | ||||
|                 set(CaptureRequest.CONTROL_AF_MODE, CaptureRequest.CONTROL_AF_MODE_CONTINUOUS_PICTURE) | ||||
|                 set(CaptureRequest.JPEG_ORIENTATION, mSensorOrientation) | ||||
|                 set(CaptureRequest.CONTROL_CAPTURE_INTENT, CaptureRequest.CONTROL_CAPTURE_INTENT_STILL_CAPTURE) | ||||
|                 set(CaptureRequest.CONTROL_AE_TARGET_FPS_RANGE, getFrameRange()) | ||||
|                 if (mZoomRect != null) { | ||||
|                     set(CaptureRequest.SCALER_CROP_REGION, mZoomRect) | ||||
|                 } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user