从Uri到Path再回到Uri

时间:2015-10-22 06:15:38

标签: android parsing path uri

我正在使用存储在外部存储器中的一些大图片。我解码它们,调整它们的大小并将小位图设置为各种图像视图。

我通过存储他们的Uri来跟踪那些大图像。当应用程序停止时,我将Uri转换为路径并保存它们,因为Strings是一个SQLite基础:。

File myFile = new File(provider.getImageUri().toString());
cv.put(DBHelper.DB_IMAGEPATH, myFile.getAbsolutePath());

此时图像的路径如下:

/ content / media / ..一切正常。

当应用程序恢复时,我从数据库中读取路径并将其转换为Uri:

File tempFile = new File(cursor.getString(imagePathColIndex);
mUri = (Uri.fromFile(mFile));

现在新mUri的路径如下:
File:/// content / ...并且有一个IONotFound异常。

1 个答案:

答案 0 :(得分:1)

你应该试试

File tempFile = new File(cursor.getString(imagePathColIndex));
mUri = Uri.parse(tempFile.getAbsolutePath());

使用以下代码进行测试

String path = "/content/media";
Uri uri = Uri.fromFile(new File(path));
Log.e(TAG, uri.toString()); //print file:///content/media

uri = Uri.parse(path);
Log.e(TAG, uri.toString()); //print /content/media

修改 要阅读图像,可以尝试

BitmapFactory.decodeStream(new FileInputStream(Uri.parse(path)));