diff --git a/CameraXBasic/app/build.gradle b/CameraXBasic/app/build.gradle index 6cee8da..1e69485 100644 --- a/CameraXBasic/app/build.gradle +++ b/CameraXBasic/app/build.gradle @@ -65,7 +65,7 @@ dependencies { implementation "androidx.navigation:navigation-ui-ktx:$nav_version" // CameraX core library - def camerax_version = '1.0.0-beta04' + def camerax_version = '1.0.0-beta07' implementation "androidx.camera:camera-core:$camerax_version" // CameraX Camera2 extensions @@ -75,7 +75,7 @@ dependencies { implementation "androidx.camera:camera-lifecycle:$camerax_version" // CameraX View class - implementation 'androidx.camera:camera-view:1.0.0-alpha11' + implementation 'androidx.camera:camera-view:1.0.0-alpha14' // CameraX Extensions library // implementation "androidx.camera:camera-extensions:1.0.0-alpha09" diff --git a/CameraXBasic/app/src/main/java/com/android/example/cameraxbasic/fragments/CameraFragment.kt b/CameraXBasic/app/src/main/java/com/android/example/cameraxbasic/fragments/CameraFragment.kt index c09fbb1..8925dcf 100644 --- a/CameraXBasic/app/src/main/java/com/android/example/cameraxbasic/fragments/CameraFragment.kt +++ b/CameraXBasic/app/src/main/java/com/android/example/cameraxbasic/fragments/CameraFragment.kt @@ -284,23 +284,22 @@ class CameraFragment : Fragment() { val cameraSelector = CameraSelector.Builder().requireLensFacing(lensFacing).build() // Preview - preview = Preview.Builder() - // We request aspect ratio but no resolution - .setTargetAspectRatio(screenAspectRatio) - // Set initial target rotation - .setTargetRotation(rotation) - .build() + val previewBuilder = Preview.Builder() + .setTargetRotation(rotation) + + val imageCaptureBuilder = ImageCapture.Builder() + .setCaptureMode(ImageCapture.CAPTURE_MODE_MINIMIZE_LATENCY) + .setTargetRotation(rotation) + + // CameraX does not properly behave when setting the target aspect ratio on the Zebra ET51 + // Do not set until this issue has been resolved: https://issuetracker.google.com/issues/151969438 + if (Build.MODEL != ET51) { + previewBuilder.setTargetAspectRatio(screenAspectRatio) + imageCaptureBuilder.setTargetAspectRatio(screenAspectRatio) + } - // ImageCapture - imageCapture = ImageCapture.Builder() - .setCaptureMode(ImageCapture.CAPTURE_MODE_MINIMIZE_LATENCY) - // We request aspect ratio but no resolution to match preview config, but letting - // CameraX optimize for whatever specific resolution best fits our use cases - .setTargetAspectRatio(screenAspectRatio) - // Set initial target rotation, we will have to call this again if rotation changes - // during the lifecycle of this use case - .setTargetRotation(rotation) - .build() + preview = previewBuilder.build() + imageCapture = imageCaptureBuilder.build() // ImageAnalysis imageAnalyzer = ImageAnalysis.Builder() @@ -593,6 +592,7 @@ class CameraFragment : Fragment() { private const val PHOTO_EXTENSION = ".jpg" private const val RATIO_4_3_VALUE = 4.0 / 3.0 private const val RATIO_16_9_VALUE = 16.0 / 9.0 + private const val ET51 = "ET51" /** Helper function used to create a timestamped file */ private fun createFile(baseFolder: File, format: String, extension: String) = diff --git a/CameraXBasic/app/src/main/res/layout/fragment_camera.xml b/CameraXBasic/app/src/main/res/layout/fragment_camera.xml index 5a8f95a..c782374 100644 --- a/CameraXBasic/app/src/main/res/layout/fragment_camera.xml +++ b/CameraXBasic/app/src/main/res/layout/fragment_camera.xml @@ -16,6 +16,7 @@ --> + android:layout_height="match_parent" + app:scaleType="fitCenter"/> - \ No newline at end of file +