首页 > 解决方案 > 我有一个 ImageView 的位图,我想在不使用 .insertImage() 的情况下使用 MediaStore API 获取它的路径?

问题描述

binding.btnShareOne.setOnClickListener {
        
        val intent = Intent(Intent.ACTION_SEND).setType("image/*")
       
        val bitmapDrawable = binding.ivLayoutOne.drawable.toBitmap() 
        
        val path = MediaStore.Images.Media.insertImage(
            contentResolver,
            bitmapDrawable,
            "tempimage",
            null
        )

        val uri = Uri.parse(path)

        intent.putExtra(Intent.EXTRA_STREAM, uri)

        startActivity(Intent.createChooser(intent, "Share Image"))


    }

这是我的代码。我想从位图中获取路径并将其传递给 Uri。当我运行当前代码时,它给了我“ java.lang.NullPointerException: uriString ”错误。

我进行了一些研究,我认为它可以通过范围存储来解决,但我似乎无法实现它。

由于不推荐使用 .insertImage() 并且 Uri 返回 null,因此我的这种方法无法从图像视图中获取图像并共享它。

请帮忙。

标签: androidandroid-studiouriandroid-imageviewscoped-storage

解决方案


位图对象没有路径。位图对象是内存中的对象。它只是原始字节。即使它来自文件,也不会保留该关联。


推荐阅读