android - CameraX 的 OnImageCapturedListener 报错
问题描述
我正在测试新的 CameraX API,我有以下代码行:
imageCapture.takePicture(executor, object:ImageCapture.OnImageCapturedListener{
// do some work when image is captured
})
但是这个论点object:ImageCapture.OnImageCapturedListener
用红色下划线。Android Studio 告诉我:"This type has a constructor and thus must be initialized here"
注意:上面的代码是在按钮的点击监听器中调用的。
下面你可以看到ImageCapture
类的另一个监听器是OnImageSavedListener
. 使用此界面,我没有错误。
findViewById<ImageButton>(R.id.capture_button).setOnClickListener {
val file = File(externalMediaDirs.first(),
"${System.currentTimeMillis()}.jpg")
imageCapture.takePicture(file, executor,
object : ImageCapture.OnImageSavedListener {
override fun onError(
imageCaptureError: ImageCapture.ImageCaptureError,
message: String,
exc: Throwable?
) {
val msg = "Photo capture failed: $message"
Log.e("CameraXApp", msg, exc)
viewFinder.post {
Toast.makeText(baseContext, msg, Toast.LENGTH_SHORT).show()
}
}
override fun onImageSaved(file: File) {
val msg = "Photo capture succeeded: ${file.absolutePath}"
Log.d("CameraXApp", msg)
viewFinder.post {
Toast.makeText(baseContext, msg, Toast.LENGTH_SHORT).show()
}
var bitmap:Bitmap = viewFinder.bitmap
runOnUiThread { imageView.setImageBitmap(bitmap) }
}
})
我对此没有任何问题,但是当我使用回调并将回调OnImageCapturedListener
替换为onImageSaved
回调时,onCaptureSuccess
我收到如上所述的错误
解决方案
试试这个代码。
imageCapture.takePicture(executor,object :ImageCapture.OnImageCapturedListener(){
override fun onCaptureSuccess(image: ImageProxy?, rotationDegrees: Int) {
super.onCaptureSuccess(image, rotationDegrees)
// capture image
}
override fun onError(
imageCaptureError: ImageCapture.ImageCaptureError,
message: String,
cause: Throwable?) {
super.onError(imageCaptureError, message, cause)
// error in capturing
}
})
推荐阅读
- java - Jackson XmlMapper 映射嵌套元素的 XML 属性
- database - 我应该将上传的文件名存储在数据库中吗?
- python - 如何用另一个词替换文本中的某些词
- amazon-web-services - 在哪里可以查看服务在 AWS ECS 中使用的放置策略?
- google-apps-script - 如何防止在鼠标按下时更改 G-Suite 插件按钮的背景颜色
- php - 如何将通配符 GLOB 传递给由 Symfony 控制台包装的 rsync?
- scala - 如何配置在 scala play 应用程序中使用 aspectj
- kotlin - 包含 5.8.13 版本的 Javers 会在构建时导致奇怪的“9730”错误消息
- html - 如何使用填充屏幕的 VH 和 VW 在两个 DIVS 上添加填充?
- android - Google Firebase 性能监控:忽略 url 模式