首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >无法在科特林与CameraKit合影

无法在科特林与CameraKit合影
EN

Stack Overflow用户
提问于 2019-06-26 19:32:47
回答 1查看 639关注 0票数 0

我正试着用CameraKit来拍照。到目前为止,我已经能够实现CameraKit并从我的相机中获得预览流。

这是我的密码:

代码语言:javascript
代码运行次数:0
运行
复制
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文档,这就是形成图像的原因:

代码语言:javascript
代码运行次数:0
运行
复制
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

EN

回答 1

Stack Overflow用户

发布于 2020-02-21 06:11:18

我觉得你不应该用

代码语言:javascript
代码运行次数:0
运行
复制
cameraKitView.captureImage(object:CameraKitView.ImageCallback()

事实上因为我也不知道怎么用它。

如果可能的话,尝试下面的方法来获取捕获的图像。它返回图像字节数组样式,您可以使用它来做您想做的事情!

代码语言:javascript
代码运行次数:0
运行
复制
btnLaunchCameraKit.setOnClickListener {
    cameraKitView.captureImage { cameraKitView, bytes ->
        val bitmap = BitmapFactory.decodeByteArray(bytes,0,bytes.size) as Bitmap
        cameraImage3.setImageBitmap(bitmap)
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56779867

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档