首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Koltin低质量图像registerForActivityResult

Koltin低质量图像registerForActivityResult
EN

Stack Overflow用户
提问于 2022-11-27 19:06:04
回答 1查看 26关注 0票数 0

嗨,我试着用kotlin和registerForActivityResult捕捉一张照片,但是我总是得到一个模糊的图像,没有质量,我读过几篇文章,但我不知道如何处理我的应用程序。我用一段片段给摄像机打电话。有什么建议吗?对不起,我的英语不太好,我花了整整一周的时间试着用它。什么都没有。提前感谢

私有变量imagenUri: Uri?=null

代码语言:javascript
复制
    val startForResult = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {
            result: ActivityResult ->
        if (result.resultCode == Activity.RESULT_OK) {
            try {
                val intent = result.data
                intent!!.putExtra(MediaStore.EXTRA_OUTPUT, imagenUri)
                val bitMap = intent?.extras?.get("data") as Bitmap
                imagenUri= getImageUriFromBitmap(requireContext(),bitMap)
                binding.ivImagen.setImageURI(imagenUri)
                Toast.makeText(context, "la uri es: $imagenUri", Toast.LENGTH_SHORT).show()
            } catch (e: java.lang.Exception){
                Toast.makeText(context, "NO SE HA PODIDO ENCONTRAR IMAGEN", Toast.LENGTH_SHORT).show()}

        }
    }

    binding.ibTomarFoto.setOnClickListener(){
        startForResult.launch(Intent(MediaStore.ACTION_IMAGE_CAPTURE))
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-28 11:40:18

来自文献资料

public static final String ACTION_IMAGE_CAPTURE 标准的意图动作,可以发送给相机应用程序捕获并返回图像。 调用方可以传递一个额外的EXTRA_OUTPUT来控制该图像的写入位置。如果不存在EXTRA_OUTPUT,则在额外字段中以位图对象的形式返回一个较小的图像。这对于只需要小图像的应用程序非常有用。如果存在,则将将完整的映像写入EXTRA_OUTPUT.的Uri值。

因此,您需要额外添加EXTRA_OUTPUT以获得存储在您提供的URI中的完整映像。否则,您将在结果Intent中获得一个作为数据有效负载的小映像(这些包无法处理大型对象)。

看起来您已经在尝试这样做了,您只是将它添加到了错误的位置--您需要将它添加到调用launchlaunch中,而不是结果之一。这是您正在启动的任务的配置选项!

所以这应该是可行的:

代码语言:javascript
复制
binding.ibTomarFoto.setOnClickListener(){
    startForResult.launch(
        Intent(MediaStore.ACTION_IMAGE_CAPTURE).putExtra(MediaStore.EXTRA_OUTPUT, imagenUri)
    )
}

然后从结果处理程序代码中删除相同的putExtra行(它什么也不做,但没有意义)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74592988

复制
相关文章

相似问题

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