android - 我有一个 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,因此我的这种方法无法从图像视图中获取图像并共享它。
请帮忙。
解决方案
位图对象没有路径。位图对象是内存中的对象。它只是原始字节。即使它来自文件,也不会保留该关联。
推荐阅读
- python-3.x - 无法找出 mpd url 的许可证 url?
- sql - 如何在聚合sql之前删除重复项
- matlab - 由于 legacy_code 中的 compilerOptions 生成/编译错误
- c++ - 与“空”标准范围视图的行为不一致,具体取决于类型
- c - 如何对齐在堆上分配的指针(使用 malloc)?
- sql - 如何计算 Azure SQL 中 SELECT 语句中 2 个整数值的差异?
- pyspark - Pyspark 获取前置值
- python - 试图循环功能。协程从未在第二个循环中等待
- visual-studio-code - Visual Studio Code:Vim - 跳线计算折叠代码块中的行数
- html - 检查特定的 url 并渲染 jinja2 / html