java - Android Intent 打开图片库,但不打开图片。为什么?

标签 java android gallery

我的应用程序中有一些图片,我想在用户点击它们时在默认查看器中打开它们。这是我的代码:

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 block 中,您可以打开任何文件: 添加您自己的 catch block 。

             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);              

关于java - Android Intent 打开图片库,但不打开图片。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34928168/

相关文章:

css - firefox/ie/chrome/Safari 之间的.css 问题

java - 如何在 surfaceview 中将 Android 相机更改为纵向?

Java:另一个多线程执行器中的单线程子执行器

带有 LIRC 的 Android Things 红外线实现

android - 如何在 Android 上获取电台名称?

javascript - 如何使用 JQuery 创建“下一步”和“预览”按钮? (图片库)

php - 允许使用 WordPress 的 Gallery Shortcode 自定义图像大小

java - 从 Python 调用 Java

java - 设置为监听单元格选择事件的 Jtable 不会触发事件

java - Android对象从方法中序列化自身