我正在使用存储在外部存储器中的一些大图片。我解码它们,调整它们的大小并将小位图设置为各种图像视图。
我通过存储他们的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异常。
答案 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)));