我想从图库中选择一个图像,然后使用它将图像加载到ImageView项中。
但是图像没有以正确的方式旋转,所以我应该使用ExifInterface类,并且exif构造函数希望文件的路径是字符串,而不是URI。
为了将URI转换为字符串,我编写了以下方法:
private String getRealPathFromURI(Uri contentURI) {
String result;
String[] proj = { MediaStore.Images.Media.DATA };
Cursor cursor = getActivity().getContentResolver()
.query(contentURI, proj, null, null, null);
if (cursor == null) {
result = contentURI.getPath();
} else {
cursor.moveToFirst();
int idx = cursor.getColumnIndex(MediaStore.Images.Media.DATA);
result = cursor.getString(idx);
cursor.close();
}
return null;
}
问题从这里开始...
结果变量总是返回null。我尝试了stackoverflow中的许多解决方案,如下所示:
那么为什么所有这些都不起作用呢?我该怎么办?
exif构造函数希望文件的路径为字符串而不是URI。
使用Android.support.media.exifinterface
。它有一个接受InputStream
的构造函数。通过在某个上下文
上调用getContentResolver().OpenInputStream(uri)
,可以获得InputStream
,例如,您的活动
,其中uri
是您的uri
。
那么为什么所有这些都不起作用呢?
因为该代码对URI
做了许多毫无根据的假设。不要求URI
引用文件系统中可以访问的文件,也不要求query()
支持data
列。
我正在尝试获取内容URI的文件路径。URL如下所示:content://com.android.providers.downloads.documents/document/31 游标对象不是null,但cursor.getString(column_index)返回null。 列索引始终为0。 编辑:内容URI是从文件管理器返回的,因此它应该表示实际的文件。
我想从SD卡文件路径中获取文件名。e、 g.:/storage/sdcard0/DCIM/Camera/1414240995236。jpg我想得到1414240995236。jpg我已经编写了获取相同内容的代码,但它不起作用。请帮忙<下面是我的代码:
我使用意图action_get_content调用startActivityForResult。有些应用程序返回给我的数据包含以下URI: 内容://media/external/images/media/18122 不知道是图像还是视频或者一些自定义内容。如何使用ContentResolver从这个URI获取实际的文件名或内容标题?
我想从URI中获得完整的文件路径。URI不是图像,而是音乐文件,但如果我像纵隔解决方案那样做,如果应用程序用户选择eg Astro作为浏览器,而不是音乐播放器,它就不会工作。我怎么解决这个?
问题内容: 我正在尝试从文件夹中包含在项目中的原始文件获取。但是无论如何,我都会得到一个。 该文件是一个文件,也尝试过使用,也不起作用。使用DOES 播放两个文件都可以。 的回报: 我的代码: 错误: 问题答案: 尝试这种方法,用作您的inputStream。沿着这个地方: 返回一个InputStream 编辑:如果您使用上述方法,请删除这些代码 希望这有帮助,祝你好运!^^
我正在创建一个应用程序,从画廊上传选定的图像,并上传到一个网络服务。web服务需要所选图像的文件名以及文件内容的base64编码。我已经设法用硬编码的文件路径实现了这一点。然而,我很难获得图像的真实文件路径。我在网上看了很多资料,找到了这段代码,但它对我不起作用: 我得到这个错误: 编辑 忘了提到我正在使用Kitkat。看起来我的问题与KitKat有关。我发现了这个(见下文),它帮助我让我的应用程