Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法在Kotlin使用CameraKit拍照_Java_Android_Kotlin_Android Camera - Fatal编程技术网

Java 无法在Kotlin使用CameraKit拍照

Java 无法在Kotlin使用CameraKit拍照,java,android,kotlin,android-camera,Java,Android,Kotlin,Android Camera,我试着用照相机来拍照。到目前为止,我已经能够实现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 impo

我试着用照相机来拍照。到目前为止,我已经能够实现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)
    }
}
如您所见,我尝试将此Java代码转换为上面的Kotlin。但是,在这一行-
cameraKitView.captureImage(对象:cameraKitView.ImageCallback(){
我一直收到一个错误

此类没有构造函数

我在ImageCallback()上遇到了这个错误。我已经尝试了许多关于如何从CameraKit捕获图像的示例,但它们都是Java的,当我转换它们时,它们都会给我相同的错误

我如何解决这个问题? 此外,在用户点击按钮保存图像(或拒绝图像,在这种情况下,我返回相机)之前,如何预览图像

使现代化 从
cameraKitView.captureImage(对象:cameraKitView.ImageCallback()
行中删除了圆括号。这使错误消失,并显示了烤面包片,但应用程序没有响应,因此我不知道是否正在拍摄照片


现在的新行是
cameraKitView.captureImage(对象:cameraKitView.ImageCallback
我认为您不应该使用

cameraKitView.captureImage(object:CameraKitView.ImageCallback()
事实上,因为我也不知道如何使用它

如果可能,请尝试以下方法获取捕获的图像。它将按阵列样式返回图像,您可以使用它执行您想要的操作

btnLaunchCameraKit.setOnClickListener {
    cameraKitView.captureImage { cameraKitView, bytes ->
        val bitmap = BitmapFactory.decodeByteArray(bytes,0,bytes.size) as Bitmap
        cameraImage3.setImageBitmap(bitmap)
    }
}

非常感谢你的回答。然而,我放弃了这个项目,所以我不知道它是否正确。
btnLaunchCameraKit.setOnClickListener {
    cameraKitView.captureImage { cameraKitView, bytes ->
        val bitmap = BitmapFactory.decodeByteArray(bytes,0,bytes.size) as Bitmap
        cameraImage3.setImageBitmap(bitmap)
    }
}