Android意图打开图片库,但不是图片。为什么?
问题描述:
我在我的应用程序中有几张图片,当用户点击它们时,我想在默认查看器中打开它们。这里是我的代码:Android意图打开图片库,但不是图片。为什么?
Intent intent = new Intent(Intent.ACTION_VIEW);
Uri uri = Uri.parse("file://" + Environment.getExternalStorageDirectory().toString() + "/Pictures/mypic.jpg");
intent.setData(uri);
intent.setType("image/jpeg");
startActivity(intent);
默认浏览器确实是打开的,但它显示了它的“丝网之乡”,显示所有文件夹和画廊。它不显示选定的图片。
我在做什么错?
答
将下面的代码放置在try块中,您可以打开任何文件: 添加catch块自己。
String FileName = ...full path of file...
MimeTypeMap map = MimeTypeMap.getSingleton();
String extension = map.getFileExtensionFromUrl(FileName.toLowerCase().replace(" ", "")); // does not work with spaces in filename
String mimetype = map.getMimeTypeFromExtension(extension);
Toast.makeText(context, FileName + "\nMimeType: " + mimetype + "\nExtension: " + extension , Toast.LENGTH_SHORT).show();
if (mimetype == null)
{
mimetype = "text/plain";
Toast.makeText(context, "MimeType: " + mimetype, Toast.LENGTH_SHORT).show();
}
String Url = "file://" + FileName;
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse(Url), mimetype);
context.startActivity(intent);
'我在我的应用程序中有几张照片。在你的应用程序?哪里?请首先解释您的图片的确切位置。 – greenapps
'默认查看器'???什么是默认查看器? – greenapps
@greenapps图像完全位于'/ storage/emulated/0 /图片/'我确信我使用的路径是正确的,并且图像存在。 _default viewer_是用户配置的任何一个。它可以是图库,QuickPic或其他。系统应该知道哪一个可以使用。 – ilvidel