// You can unbind from any UseCase
CameraX.unbind(previewUseCase)
// In this way TextureView will hold the last frame
// for version 1.0.0-alpha07
cameraProvider.unbind(preview);
PreviewView.getBitmap()
来捕获出现在预览屏幕上的最新图像。这非常快速,而且你甚至不需要旋转或翻转图像。
我的 XML 代码: <androidx.camera.view.PreviewView
android:id="@+id/viewFinder"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintDimensionRatio="3:3"
app:layout_constraintTop_toTopOf="parent"/>
<ImageView
android:visibility="gone"
android:id="@+id/ivPreview"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintDimensionRatio="3:3"
app:layout_constraintTop_toTopOf="parent"/>
我的先前代码,处理来自OnImageCapturedCallback
或OnImageSavedCallback
的图像:
private fun showCapturedImage(bitmap: Bitmap, rotationDegrees: Float) {
viewFinder.visibility = View.GONE
ivPreview.visibility = View.VISIBLE
var rotatedBitmap = ImageUtils.rotateImage(bitmap, rotationDegrees).toSquare()
if (isTakeFacePhoto){
rotatedBitmap = rotatedBitmap.flipBitmap()
}
ivPreview.setImageBitmap(rotatedBitmap)
}
使用PreviewView.getBitmap()
之后,当前代码:
val bitmap = viewFinder.getBitmap()
showCapturedImage(bitmap)
private fun showCapturedImage(bitmap: Bitmap) {
viewFinder.visibility = View.GONE
ivPreview.visibility = View.VISIBLE
ivPreview.setImageBitmap(bitmap)
}
OnImageSavedCallback
保存图像,请记住从 PreviewView.getBitmap()
到从 OnImageSavedCallback
保存的文件可能会有轻微延迟,因此这两个图像取决于延迟可能会非常不同。
previewUseCase
即可。 - Chee-YiCameraX.unbindAll()
删除了所有内容,但它仍然保留着最后一帧。如何将其完全关闭?就像关闭相机一样? - Shubham Agrawal