处理文件格式(来自 Camera 的文件路径,来自 Gallery 的 Uris)
Dealing with file formats (filepaths from Camera, Uris from Gallery)
所以在创建我的应用程序的照片部分时,用户可以拍照或从图库中选择照片,我遇到了一些奇怪的问题。
"take picture" 实现依赖于 getExternalCacheDir()
给出的系统缓存目录的绝对文件路径,因此使用描述图像文件位置的字符串来操作这些文件。
然而,当我尝试从图库中获取图片时,使用 Intent 获取 MediaStore.Images.Media.EXTERNAL_CONTENT_URI
,相应的图像采用 Uri
.
的形式
为了保持一致性,我尝试通过执行 .getPath()
将此 Uri
转换为路径,但这只给了我包含图像的文件夹,而不是实际图像的完整路径。
如何从图库 Intent 中获取给我的图像的完整路径,以便我可以纯粹根据文件路径工作?
How do I get the full path to the image given to me from the gallery Intent
你不知道。
不要求 MediaStore
仅索引您可以直接访问文件系统的图像。特别是,对于 运行 Android 4.4+ 且具有可移动媒体的数亿设备,MediaStore
可以很容易地在其索引图像中包含您无法从文件系统访问的图像,因为您没有对可移动存储的任意访问权限。
根据您对这些图像的处理,使用 an image-loading library or just use ContentResolver
and methods like openInputStream()
to read in the content。作为奖励,openInputStream()
适用于 file:
和 content:
Uri
值,因此您不一定需要分别处理两种数据源类型。
所以在创建我的应用程序的照片部分时,用户可以拍照或从图库中选择照片,我遇到了一些奇怪的问题。
"take picture" 实现依赖于 getExternalCacheDir()
给出的系统缓存目录的绝对文件路径,因此使用描述图像文件位置的字符串来操作这些文件。
然而,当我尝试从图库中获取图片时,使用 Intent 获取 MediaStore.Images.Media.EXTERNAL_CONTENT_URI
,相应的图像采用 Uri
.
为了保持一致性,我尝试通过执行 .getPath()
将此 Uri
转换为路径,但这只给了我包含图像的文件夹,而不是实际图像的完整路径。
如何从图库 Intent 中获取给我的图像的完整路径,以便我可以纯粹根据文件路径工作?
How do I get the full path to the image given to me from the gallery Intent
你不知道。
不要求 MediaStore
仅索引您可以直接访问文件系统的图像。特别是,对于 运行 Android 4.4+ 且具有可移动媒体的数亿设备,MediaStore
可以很容易地在其索引图像中包含您无法从文件系统访问的图像,因为您没有对可移动存储的任意访问权限。
根据您对这些图像的处理,使用 an image-loading library or just use ContentResolver
and methods like openInputStream()
to read in the content。作为奖励,openInputStream()
适用于 file:
和 content:
Uri
值,因此您不一定需要分别处理两种数据源类型。