【发布时间】:2019-06-26 19:32:47
【问题描述】:
我正在尝试使用 CameraKit 来拍照。到目前为止,我已经能够实现 CameraKit 并从我的相机中获取预览流。
这是我的代码:
package com.example.testapp
import com.camerakit.CameraKitView
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.Toast
import kotlinx.android.synthetic.main.activity_camera_screen.*
class cameraScreen : AppCompatActivity() {
private lateinit var cameraKitView:CameraKitView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_camera_screen)
cameraKitView = findViewById(R.id.camera)
photoButton.setOnClickListener{
cameraKitView.captureImage(object:CameraKitView.ImageCallback() {
override fun onImage(cameraKitView:CameraKitView, capturedImage:ByteArray) {
// capturedImage contains the image from the CameraKitView.
Toast.makeText(applicationContext,"Image Taken", Toast.LENGTH_SHORT).show()
}
})
}
}
override fun onStart() {
super.onStart()
cameraKitView.onStart()
}
override fun onResume() {
super.onResume()
cameraKitView.onResume()
}
public override fun onPause() {
cameraKitView.onPause()
super.onPause()
}
override fun onStop() {
cameraKitView.onStop()
super.onStop()
}
override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
cameraKitView.onRequestPermissionsResult(requestCode, permissions, grantResults)
}
}
现在根据 CameraKit 文档,这就是制作图像的原因:
cameraKitView.captureImage(new CameraKitView.ImageCallback() {
@Override
public void onImage(CameraKitView cameraKitView, final byte[] capturedImage) {
// capturedImage contains the image from the CameraKitView.
}
})
如您所见,我已尝试将这段 Java 代码转换为上面的 Kotlin。但是,在这一行 - cameraKitView.captureImage(object:CameraKitView.ImageCallback() { 我不断收到错误
这个类没有构造函数
我在 ImageCallback() 上收到此错误。我尝试了很多关于如何从 CameraKit 捕获图像的示例,但它们都是 Java 语言,当我转换它们时,它们都给了我同样的错误。
我该如何解决这个问题? 此外,如何在拍摄后预览图像,直到用户点击按钮保存(或拒绝它,在这种情况下我会返回相机)?
更新
从cameraKitView.captureImage(object:CameraKitView.ImageCallback() 行中删除了圆括号。这使得错误消失并显示吐司,但应用程序没有响应,所以我真的不知道是否正在拍摄照片。
现在的新线路是cameraKitView.captureImage(object:CameraKitView.ImageCallback
【问题讨论】:
标签: java android kotlin android-camera