我想要显示一到三张照片.我要等到运行时才能确切知道从Internet下载了多少张照片.
我不知道如何创建一个意图来显示照片.现在,我将它们缓存在我通过执行以下操作(无错误检查)而创建的文件夹下的sdcard上:
final File externalDirectory = Environment.getExternalStorageDirectory();
final String folder = externalDirectory.getAbsolutePath() + "/Android/data/" + packageName + "/files/";
Android Developer Reference中对此进行了解释.
通过执行以下操作,我可以显示一张照片:
final Uri uri = Uri.fromFile(file);
final Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(uri, "image/*");
Util.startActivity(this, intent);
其中file是保存的照片的文件.
如果有帮助,我可以将图像保存到应用程序可用的任何位置,但是我不希望将照片显示在用户的其他个人照片中,因为这可能很烦人.
图像查看器具有菜单选项“幻灯片放映”,因此它必须知道多张照片.
我可以创建自己的Image Viewer,但这似乎是多余的工作,超出了我的合理预期.即使我做到了这一点,我也希望用户能够安装第三者图像查看器,并获得更好的平移,缩放,共享,…体验.
我尝试使用缓存的照片文件目录创建Uri,但“图像查看器”显示黑页.如果我传入文件,则仅显示一个文件,不显示其他文件.
我知道这是有可能的,因为如果我手动选择文件夹,可以看到使用Gallery应用程序并显示照片.每当我研究此问题时,评论都会说不可能显示多个图像.
我怀疑里面有魔咒,但是呢?
解决方法:
我认为您的目标无法控制.如果查看器应用程序旨在处理多个图像或目录,则可以要求它显示为所需的内容,但是您已定义为查看器的模式.
我已经安装了一个名为QuickPic的第三方图像查看器.我刚刚测试了您的代码段,系统弹出了一个选择对话框,让我选择应用程序以显示文件夹中的图像.如果选择本机库,则看到的只是一个空文件夹,而Quickpic可以按我的意愿工作.
PS:我通过以下方式告诉我的应用程序文件夹的Uri:
intent.setDataAndType(Uri.fromFile(new File("//mnt/sdcard/test/")), MimeTypeMap.getSingleton().getMimeTypeFromExtension("png"));