当我选择一个画廊照片android时,文件不存在

时间:2013-07-30 09:55:06

标签: android file select gallery photo

当我从图库中选择图像时,我通过onActivityResult传递的参数获取意图Uri。在执行:new File(String_Uri_given_to_me)并执行File.Exists()时,给我null ... 我能做什么?

3 个答案:

答案 0 :(得分:0)

看来你可能会尝试: 新文件(Uri_given_to_you.getpath())

可能没关系。

答案 1 :(得分:0)

如果上述答案无法解决您的问题,请使用此代码

private final synchronized String getPath(Uri uri) {
    String res = null;
    String[] proj = { MediaStore.Images.Media.DATA };
    Cursor cursor = getContentResolver().query(uri, proj,
            null, null, null);
    if (cursor.moveToFirst()) {
        int column_index = cursor
                .getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
        res = cursor.getString(column_index);
    }
    cursor.close();
    return res;
}

答案 2 :(得分:0)

我在这个问题上遇到了困难。我无法获得一些图像Path(甚至使用Maxim Efivmov代码),最后决定使用Google的文档来讨论这个主题。 https://developer.android.com/guide/topics/providers/document-provider.html

这段代码用于获取位图

private Bitmap getBitmapFromUri(Uri uri) throws IOException {
    ParcelFileDescriptor parcelFileDescriptor =
    getContentResolver().openFileDescriptor(uri, "r");
    FileDescriptor fileDescriptor = parcelFileDescriptor.getFileDescriptor();
    Bitmap image = BitmapFactory.decodeFileDescriptor(fileDescriptor);
    parcelFileDescriptor.close();
    return image;
}

您可以使用此位图在图像视图中显示它。