mirror of
https://github.com/SimpleMobileTools/Simple-Camera.git
synced 2025-04-24 12:08:45 +02:00
fix too dark image preview on some devices
This commit is contained in:
parent
3706b3708b
commit
15ba3462c1
@ -18,6 +18,7 @@ import android.os.Build
|
|||||||
import android.os.Handler
|
import android.os.Handler
|
||||||
import android.os.HandlerThread
|
import android.os.HandlerThread
|
||||||
import android.util.DisplayMetrics
|
import android.util.DisplayMetrics
|
||||||
|
import android.util.Range
|
||||||
import android.util.Size
|
import android.util.Size
|
||||||
import android.util.SparseIntArray
|
import android.util.SparseIntArray
|
||||||
import android.view.MotionEvent
|
import android.view.MotionEvent
|
||||||
@ -458,6 +459,7 @@ class PreviewCameraTwo : ViewGroup, TextureView.SurfaceTextureListener, MyPrevie
|
|||||||
} else {
|
} else {
|
||||||
mPreviewRequestBuilder!!.apply {
|
mPreviewRequestBuilder!!.apply {
|
||||||
set(CaptureRequest.CONTROL_AF_MODE, CaptureRequest.CONTROL_AF_MODE_CONTINUOUS_PICTURE)
|
set(CaptureRequest.CONTROL_AF_MODE, CaptureRequest.CONTROL_AF_MODE_CONTINUOUS_PICTURE)
|
||||||
|
set(CaptureRequest.CONTROL_AE_TARGET_FPS_RANGE, getFrameRange())
|
||||||
setFlashAndExposure(this)
|
setFlashAndExposure(this)
|
||||||
mPreviewRequest = build()
|
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() {
|
private fun updatePreview() {
|
||||||
try {
|
try {
|
||||||
mPreviewRequestBuilder!!.set(CaptureRequest.CONTROL_MODE, CameraMetadata.CONTROL_MODE_AUTO)
|
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.CONTROL_AF_MODE, CaptureRequest.CONTROL_AF_MODE_CONTINUOUS_PICTURE)
|
||||||
set(CaptureRequest.JPEG_ORIENTATION, mSensorOrientation)
|
set(CaptureRequest.JPEG_ORIENTATION, mSensorOrientation)
|
||||||
set(CaptureRequest.CONTROL_CAPTURE_INTENT, CaptureRequest.CONTROL_CAPTURE_INTENT_STILL_CAPTURE)
|
set(CaptureRequest.CONTROL_CAPTURE_INTENT, CaptureRequest.CONTROL_CAPTURE_INTENT_STILL_CAPTURE)
|
||||||
|
set(CaptureRequest.CONTROL_AE_TARGET_FPS_RANGE, getFrameRange())
|
||||||
if (mZoomRect != null) {
|
if (mZoomRect != null) {
|
||||||
set(CaptureRequest.SCALER_CROP_REGION, mZoomRect)
|
set(CaptureRequest.SCALER_CROP_REGION, mZoomRect)
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user