当前位置: 首页 > 知识库问答 >
问题:

Android获取意向后的图像路径

靳举
2023-03-14

我制作了一个应用程序。它有两个上传照片的选项:

1) 用照相机拍照

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, 1);

2)从画廊采摘

Intent intent = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, 2);

我的问题是在activityresult中获取这些意图之后的文件路径。是否有任何方法可以为新文件(路径)获取这些路径,这些路径也会考虑sdk级别的更改?例如,直到KitKat是文件系统的1种类型,KitKat之后是其他类型。

共有2个答案

弓玉书
2023-03-14

如果您能够从摄影机获取路径,则可用于Intent。操作_PICK您可以使用数据直接获取图像的uri。getData(),然后可以使用此方法获取文件路径(如Gennadii Saprykin提供的链接中所建议的)

public String getRealPathFromURI(Uri uri) {
Cursor cursor = getContentResolver().query(uri, null, null, null, null); 
cursor.moveToFirst();
int idx = cursor.getColumnIndex(MediaStore.Images.ImageColumns.DATA); 
return cursor.getString(idx); }
刁越
2023-03-14

我的问题是在onActivityResult中获取这些意图之后的文件路径。

ACTION_IMAGE_CAPTURE方法将没有文件路径,因为您没有提供EXTRA_OUTPUT。如果您确实提供了EXTRA_OUTPUT,那么您已经知道文件路径是什么了。

没有ACTION_PICK的文件路径,因为不要求用户选择的内容在您可以访问的文件中。例如,它可以是可移动存储上的图像。使用ContentResolver和像openInputStream()这样的方法来获取由给定的Uri表示的内容。

 类似资料:
  • 在相机意图返回时获得文件路径的最佳方法是什么。当然,我可以在启动意图之前将文件路径保存到成员变量,但这似乎不好,我应该从OnActivityResult中获得路径。 我已经试过了(从相机意图获取图像路径): 唯一不同的是,我在尝试内部存储pic时使用了INTERNAL_CONTENT_URI。如果我这样做,我会得到一个异常:

  • 问题内容: 我有一个可以制作图片并上传图片的应用。上载需要照片的文件路径,但无法获取。 这是我的代码: 请帮助我获取文件路径。 谢谢 问题答案: 发布到Twitter时,需要在发布请求中发送图片在设备上的实际路径。我发现很难找到实际的路径,而且经常会发现错误的路径。 为了解决这个问题,一旦有了a ,我就可以使用来获取。随后,我使用实例获取设备上的实际路径。 这是生产代码,并且经过了自然测试。;-)

  • 我正在开发一个Android应用程序。它有一个功能,捕获的图像应该显示在屏幕上,我需要得到那个图像路径,这样我就可以把那个图像发送到服务器。 我可以在屏幕上显示图像,但无法获得绝对图像路径。 我得到的路径像: 如何获取实际图像路径? 这是我的密码: 值如上所示。 我如何从这个路径得到我的绝对图像路径。

  • 我想使用共享命令从图库获取图像。 我目前的代码是: imageUri 的值为:content://media/external/images/media/37 但是函数“openInputStream”会抛出错误“java.io.FileNotFoundException”。 通过下面的函数,我得到了图像的真实路径。 但我不知道如何将其转换为位图。

  • 这段代码在Samsung tab中工作,但在Lenovo tab和i-ball tab中不工作。那么,有没有人能帮我找到另一种解决方法来做同样的事情呢?任何帮助都将不胜感激。谢谢你。 这是我的OnActivityResult:

  • 我的第一个问题!我有一段代码有问题,它用额外的输出选项开始相机意图,然后在活动结果上试图调整图像的大小。正在发生的情况是,在回调时的resize函数中会引发一个nullpointer异常。 活动结果回调函数: 下面是logcat: