处理文件格式(来自相机的文件路径,来自图库的Uris)

时间:2016-04-13 21:17:02

标签: android image android-intent android-camera uri

因此,在创建我的应用的照片部分时,用户可以拍摄照片或从图库中选择照片,我遇到了一些奇怪的问题。

“拍照”实现依赖于绝对文件路径到getExternalCacheDir()给出的系统中的缓存目录,因此使用描述图像文件位置的字符串来处理这些文件。

但是,当我尝试从图库中获取图片时,使用获得MediaStore.Images.Media.EXTERNAL_CONTENT_URI的意图,相应的图片采用Uri的形式。

为了保持一致性,我尝试通过执行Uri将此.getPath()转换为路径,但这只给了我包含图像的文件夹,而不是实际图像的完整路径。

如何从图库Intent中获取给我的图像的完整路径,以便我可以完全按照文件路径工作?

1 个答案:

答案 0 :(得分:1)

  

如何从图库Intent

获取给我的图像的完整路径

你没有。

不要求MediaStore仅索引您具有直接文件系统访问权限的映像。特别是,对于运行Android 4.4+且具有可移动媒体的数亿台设备,MediaStore可以很容易地在其索引图像中无法从文件系统访问,因为您没有任意访问可移动的存储

根据您对这些图片的处理方式,使用an image-loading libraryuse ContentResolver and methods like openInputStream() to read in the content。作为奖励,openInputStream()适用于file:content: Uri值,因此您不一定需要单独处理两种数据源类型。