Android 通过intent从图库中拾取的图像长度
我有个问题。我想做一个文件上传程序。我正在使用Intent.ACTION\u GET\u CONTENT从我的设备中拾取任何文件。我在onActivityResult中收到的文件如下:Android 通过intent从图库中拾取的图像长度,android,file,android-intent,gallery,Android,File,Android Intent,Gallery,我有个问题。我想做一个文件上传程序。我正在使用Intent.ACTION\u GET\u CONTENT从我的设备中拾取任何文件。我在onActivityResult中收到的文件如下: @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode) { case REQUEST_CHOOSER:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case REQUEST_CHOOSER:
if (resultCode == RESULT_OK) {
final Uri uri = data.getData();
File file = FileUtils.getFile(uri);
String fileName = file.getName();
String filePath = file.getPath();
int fileSize = Integer.parseInt(String.valueOf(file.length()/1024));
tvName.setText(fileName);
tvPath.setText(filePath);
tvSize.setText(String.valueOf(fileSize) + "kB");
}
}
}
我想显示用户有关拾取文件的信息。一般来说,一切都很好,但当我从gallery中选择Image时:
在通过intent从Gallery中拾取图像后,是否有任何方法可以访问真实图像的名称和大小 从库中拾取图像时,不会得到对实际文件的引用,而是数据库中的一行。您必须使用中的光标检索实际的文件路径。只需输入意图中的URI并获取任何文件的大小
uri = data.getData();
Cursor returnCursor = getContentResolver().query(uri, null, null, null, null);
int nameIndex = returnCursor.getColumnIndex(OpenableColumns.DISPLAY_NAME);
int sizeIndex = returnCursor.getColumnIndex(OpenableColumns.SIZE);
returnCursor.moveToFirst();
Log.e("TAG", "Name:" + returnCursor.getString(nameIndex));
Log.e("TAG","Size: "+Long.toString(returnCursor.getLong(sizeIndex)));
我想这会对您有所帮助。是的,我刚刚完成了,而且效果很好,谢谢您的回复和正确的提示