从画廊加载图像不起作用两次
Load image from gallery doesn't works twice
我 select 图片来自画廊。现在我将它加载到临时文件中并可以在 ImageView 中显示它。一切正常。
Uri uri = data.getData();
File file = new File(uri+"");
String fileName = file.getName();
String filePath = file.getParent();
Bitmap bitmap = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), uri);
//here come's the code to save the temp-file and so on
在fileName和filePath中我保存了名称和路径以备后用。因为如果用户想保存图片我想复制一份。
URI shown in the debugger: content:/media/external/images/media/12345
filePath: content:/media/external/images/media
fileName: 12345
如果我想保存图像,我使用文件名和文件路径来构建 URI,并希望像上面那样做。但它不起作用。我从 MediaStore 得到一个 FileNotFoundException "no content provider"。嗯 - 在我删除应用程序进行新测试之前,"No such file or directory" 出现了,我想我用 READ_EXTERNAL_STORAGE 权限消除了 "no content provider" 异常。
Uri uri = Uri.parse(filePath +"/"+ fileName);
Bitmap bitmap = MediaStore.Images.Media.getBitmap(context.getContentResolver(), uri);
这里我在调试器中也看到了正确的 URI。
怎么了?
我已经在 AndroidManifest 中设置了权限 READ_EXTERNAL_STORAGE 和 WRITE_EXTERNAL_STORAGE。
In the fileName and filePath I save the name and path for later use
Uri
不是文件,你的肯定不是文件。
What is wrong?
您的 Uri
有一个 content
方案。这是由 ContentProvider
提供的。你没有指出这个 Uri
来自哪里,但我猜它来自 ACTION_GET_DOCUMENT
或类似的东西。在那种情况下,就像需要工作会话的 Web URL,your access to the content identified by that Uri
is short.
如果您想长期访问内容,请将其下载到您的应用程序中,就像从 Web 下载内容一样 URL。
我 select 图片来自画廊。现在我将它加载到临时文件中并可以在 ImageView 中显示它。一切正常。
Uri uri = data.getData();
File file = new File(uri+"");
String fileName = file.getName();
String filePath = file.getParent();
Bitmap bitmap = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), uri);
//here come's the code to save the temp-file and so on
在fileName和filePath中我保存了名称和路径以备后用。因为如果用户想保存图片我想复制一份。
URI shown in the debugger: content:/media/external/images/media/12345
filePath: content:/media/external/images/media
fileName: 12345
如果我想保存图像,我使用文件名和文件路径来构建 URI,并希望像上面那样做。但它不起作用。我从 MediaStore 得到一个 FileNotFoundException "no content provider"。嗯 - 在我删除应用程序进行新测试之前,"No such file or directory" 出现了,我想我用 READ_EXTERNAL_STORAGE 权限消除了 "no content provider" 异常。
Uri uri = Uri.parse(filePath +"/"+ fileName);
Bitmap bitmap = MediaStore.Images.Media.getBitmap(context.getContentResolver(), uri);
这里我在调试器中也看到了正确的 URI。
怎么了?
我已经在 AndroidManifest 中设置了权限 READ_EXTERNAL_STORAGE 和 WRITE_EXTERNAL_STORAGE。
In the fileName and filePath I save the name and path for later use
Uri
不是文件,你的肯定不是文件。
What is wrong?
您的 Uri
有一个 content
方案。这是由 ContentProvider
提供的。你没有指出这个 Uri
来自哪里,但我猜它来自 ACTION_GET_DOCUMENT
或类似的东西。在那种情况下,就像需要工作会话的 Web URL,your access to the content identified by that Uri
is short.
如果您想长期访问内容,请将其下载到您的应用程序中,就像从 Web 下载内容一样 URL。