我按照本教程中的描述在我的应用程序中添加了cameraX 。我面临的唯一问题是图像旋转。在应用程序清单文件中,我使用此设置进行相机活动android:screenOrientation="portrait"。我的目标是使此活动始终处于纵向模式,而捕获的图像应该具有真正的旋转。
我怎样才能做到这一点?当活动固定时,cameraX 是否可以检测到不同的旋转?
这是我在相机活动中的代码
private lateinit var cameraProviderFuture: ListenableFuture<ProcessCameraProvider>
private lateinit var imageCapture: ImageCapture
private val executor = Executors.newSingleThreadExecutor()
private var camera: Camera? = null
...
override fun onCreate(savedInstanceState: Bundle?)
{
...
cameraProviderFuture = ProcessCameraProvider.getInstance(this)
preview_view.post(
{
startCamera()
})
}
...
fun startCamera()
{
preview = Preview.Builder().apply {
setTargetAspectRatio(AspectRatio.RATIO_16_9)
setTargetRotation(preview_view.display.rotation)
}.build()
imageCapture = ImageCapture.Builder().apply {
setCaptureMode(ImageCapture.CAPTURE_MODE_MINIMIZE_LATENCY)
}.build()
val cameraSelector = CameraSelector.Builder().requireLensFacing(CameraSelector.LENS_FACING_BACK).build()
cameraProviderFuture.addListener(Runnable {
val cameraProvider = cameraProviderFuture.get()
cameraProvider.unbindAll()
camera = cameraProvider.bindToLifecycle(this, cameraSelector, preview, imageCapture)
preview.setSurfaceProvider(preview_view.createSurfaceProvider(camera!!.cameraInfo)) …Run Code Online (Sandbox Code Playgroud) 我正在进行扫描条形码的项目,所以我想禁用自动对焦以提高性能。我尝试了很多方法但根本不起作用。有人可以给我一些帮助吗?谢谢。
我希望相机在按下图像捕获按钮时冻结预览。我看过其他堆栈溢出问题,但它们已经过时了。
我使用的cameraX版本:1.0.0-beta03
任何帮助将不胜感激。谢谢
我一直在为我的应用程序实现 CameraView,几周前它可以正常工作,但现在它只是显示黑屏,这意味着不显示预览。结果,似乎正在录制的视频也没有被保存。
有人可以纠正我的代码吗?
显现:
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
Run Code Online (Sandbox Code Playgroud)
构建.gradle(应用程序)
def camerax_version = "1.0.0-beta07"
implementation "androidx.camera:camera-core:$camerax_version"
implementation "androidx.camera:camera-camera2:$camerax_version"
implementation "androidx.camera:camera-lifecycle:$camerax_version"
implementation "androidx.camera:camera-view:1.0.0-alpha14"
Run Code Online (Sandbox Code Playgroud)
XML
<androidx.camera.view.CameraView
android:id="@+id/CameraView_cameraPreview"
android:layout_width="match_parent"
android:layout_height="500dp"
app:captureMode="mixed"
app:flash="auto"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.4"
app:lensFacing="back"
app:pinchToZoomEnabled="true"
app:scaleType="fitCenter" />
**p.s: I have implemented this button in build.gradle**
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/Button_cameraRecord"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/camera_record_vector"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/CameraView_cameraPreview"
app:layout_constraintVertical_bias="0.5" />
Run Code Online (Sandbox Code Playgroud)
Kotlin 活动
package com.example.iambeta.camera
import android.Manifest
import android.content.Intent
import android.content.pm.PackageManager
import android.os.Bundle
import android.os.SystemClock
import …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 CameraX Api 实现 TapToFocus 功能。我已经成功实现了它,但不知道如何在描述用户按下的位置的预览上画一个圆圈。