我试图用一个CameraXPreviewView一个内部Composable通过AndroidView,但预览拉伸和右半边被裁剪,你可以在看截图。尽管如此,该视图似乎占据了正确的空间。此问题仅在纵向模式下发生。我能够在两部手机和模拟器中重现这个问题,所以我怀疑它是特定于硬件的。
我尝试了不同的比例类型,但这似乎不会影响拉伸。我会报告一个错误,但我不确定这是 compose 还是 cameraX 中的错误。
请参阅我在下面使用的代码:
package com.example.camerapreview
import android.Manifest
import android.graphics.Color
import android.os.Bundle
import android.view.ViewGroup.LayoutParams.MATCH_PARENT
import android.widget.LinearLayout
import androidx.activity.ComponentActivity
import androidx.activity.compose.registerForActivityResult
import androidx.activity.compose.setContent
import androidx.activity.result.contract.ActivityResultContracts
import androidx.camera.core.AspectRatio.RATIO_16_9
import androidx.camera.core.CameraSelector
import androidx.camera.lifecycle.ProcessCameraProvider
import androidx.camera.view.PreviewView
import androidx.compose.material.Button
import androidx.compose.material.MaterialTheme
import androidx.compose.material.Surface
import androidx.compose.material.Text
import androidx.compose.runtime.*
import androidx.compose.ui.platform.LocalLifecycleOwner
import androidx.compose.ui.viewinterop.AndroidView
import androidx.core.content.ContextCompat
import androidx.lifecycle.LifecycleOwner
import com.example.pointergun.ui.theme.PointerGunTheme
import com.google.common.util.concurrent.ListenableFuture
import androidx.camera.core.Preview
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val cameraProviderFuture …Run Code Online (Sandbox Code Playgroud)