Fix size of camera preview on Android 8.0

This commit is contained in:
Pierre-Yves Nicolas
2025-09-07 11:24:51 +02:00
parent 868553a5f9
commit 489d405681

View File

@@ -33,13 +33,12 @@ import androidx.compose.foundation.interaction.MutableInteractionSource
import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.aspectRatio
import androidx.compose.foundation.layout.fillMaxHeight import androidx.compose.foundation.layout.fillMaxHeight
import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.width
import androidx.compose.foundation.lazy.LazyListState import androidx.compose.foundation.lazy.LazyListState
import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.foundation.lazy.rememberLazyListState
import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.shape.CircleShape
@@ -347,12 +346,6 @@ private fun CameraPreviewWithOverlay(
modifier: Modifier, modifier: Modifier,
) { ) {
val captureState = cameraUiState.captureState val captureState = cameraUiState.captureState
var width = LocalConfiguration.current.screenWidthDp
var height = width * 4 / 3
if (cameraUiState.isLandscape) {
height = LocalConfiguration.current.screenHeightDp
width = height * 4 / 3
}
var showShutter by remember { mutableStateOf(false) } var showShutter by remember { mutableStateOf(false) }
LaunchedEffect(captureState.frozenImage) { LaunchedEffect(captureState.frozenImage) {
@@ -364,9 +357,11 @@ private fun CameraPreviewWithOverlay(
} }
Box( Box(
modifier = modifier modifier = if (cameraUiState.isLandscape) {
.width(width.dp) modifier.fillMaxHeight().aspectRatio(4f / 3f)
.height(height.dp) } else {
modifier.fillMaxWidth().aspectRatio(3f / 4f)
}
) { ) {
cameraPreview() cameraPreview()
AnalysisOverlay(cameraUiState.liveAnalysisState, cameraUiState.isDebugMode) AnalysisOverlay(cameraUiState.liveAnalysisState, cameraUiState.isDebugMode)