我可以从它的名字获得Uri的图像文件吗?

时间:2010-02-01 04:54:26

标签: android

有一些图像文件,我想得到这些图像文件的Uri。 在我的代码中,我只知道图像文件的路径和文件名。 如何从路径和文件名中获取Uri?

2 个答案:

答案 0 :(得分:42)

如果您有File,则可以随时将其转换为URI

File file = new File(path + File.pathSeparator + filename);
URI uri = file.toURI();

或者,如果您想使用Android Uri类:

Uri uri = Uri.fromFile(file);

答案 1 :(得分:2)

我对我的文件浏览器活动有同样的问题...但你应该知道文件的contenturi只支持图像,音频和视频等媒体库数据....我正在给你从选择获取图像内容uri来自SD卡的图像......试试这段代码......可能会对你有用......

public static Uri getImageContentUri(Context context, File imageFile) {
        String filePath = imageFile.getAbsolutePath();
        Cursor cursor = context.getContentResolver().query(
                MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
                new String[] { MediaStore.Images.Media._ID },
                MediaStore.Images.Media.DATA + "=? ",
                new String[] { filePath }, null);
        if (cursor != null && cursor.moveToFirst()) {
            int id = cursor.getInt(cursor
                    .getColumnIndex(MediaStore.MediaColumns._ID));
            Uri baseUri = Uri.parse("content://media/external/images/media");
            return Uri.withAppendedPath(baseUri, "" + id);
        } else {
            if (imageFile.exists()) {
                ContentValues values = new ContentValues();
                values.put(MediaStore.Images.Media.DATA, filePath);
                return context.getContentResolver().insert(
                        MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
            } else {
                return null;
            }
        }
    }