因此,在创建我的应用的照片部分时,用户可以拍摄照片或从图库中选择照片,我遇到了一些奇怪的问题。
“拍照”实现依赖于绝对文件路径到getExternalCacheDir()
给出的系统中的缓存目录,因此使用描述图像文件位置的字符串来处理这些文件。
但是,当我尝试从图库中获取图片时,使用获得MediaStore.Images.Media.EXTERNAL_CONTENT_URI
的意图,相应的图片采用Uri
的形式。
为了保持一致性,我尝试通过执行Uri
将此.getPath()
转换为路径,但这只给了我包含图像的文件夹,而不是实际图像的完整路径。
如何从图库Intent中获取给我的图像的完整路径,以便我可以完全按照文件路径工作?
答案 0 :(得分:1)
如何从图库Intent
获取给我的图像的完整路径
你没有。
不要求MediaStore
仅索引您具有直接文件系统访问权限的映像。特别是,对于运行Android 4.4+且具有可移动媒体的数亿台设备,MediaStore
可以很容易地在其索引图像中无法从文件系统访问,因为您没有任意访问可移动的存储
根据您对这些图片的处理方式,使用an image-loading library或use ContentResolver
and methods like openInputStream()
to read in the content。作为奖励,openInputStream()
适用于file:
和content:
Uri
值,因此您不一定需要单独处理两种数据源类型。