Android ACTION_VIEW 多张图像

2023-11-29

我希望我的应用程序显示一到三张照片。直到运行时我才知道从互联网上下载了多少照片。

我不知道如何创建一个意图来显示照片。现在,我将它们缓存在 SD 卡上的一个文件夹下,该文件夹是我通过执行类似操作(无错误检查)创建的:

final File externalDirectory = Environment.getExternalStorageDirectory();
final String folder = externalDirectory.getAbsolutePath() + "/Android/data/" + packageName + "/files/";

这在Android 开发者参考.

我可以通过执行以下操作来显示一张照片:

final Uri uri = Uri.fromFile(file);
final Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(uri, "image/*");
Util.startActivity(this, intent);

Where file是保存照片的文件。

如果有帮助,我可以将图像保存到我的应用程序可用的任何位置,但是我不希望将照片与用户的其他个人照片一起列出,因为这可能会很烦人。

图像查看器有一个菜单选项“幻灯片放映”,因此它必须了解多张照片。

我可以创建自己的图像查看器,但这似乎是额外的工作,超出了我的合理预期。即使我这样做,我也希望用户能够安装第 3 方图像查看器并获得更好的平移、缩放、共享体验……

我尝试使用缓存的照片文件的目录来创建 Uri,但图像查看器显示黑色页面。如果我传入该文件,它只会显示该文件,而不显示其他文件。

我知道这一定是可能的,因为如果我手动选择文件夹,我可以看到使用图库应用程序并显示照片。每次我研究这个问题时,评论都说无法显示多个图像。

我怀疑有什么魔法咒语,但是什么?


我认为你的目标超出了你的控制范围。如果查看器应用程序设计为处理多个图像或目录,您可以要求它按您想要的方式显示,但您被定义为查看器的模式。

我安装了一个名为的第三方图像查看器QuickPic。我刚刚测试了您的代码片段,系统弹出一个选择器对话框,让我选择应用程序来显示文件夹中的图像。如果我选择本机图库,我看到的只是一个空文件夹,而 Quickpic 可以按我想要的方式工作。

PS:我这样告诉我的应用程序文件夹的 Uri:

intent.setDataAndType(Uri.fromFile(new File("//mnt/sdcard/test/")), MimeTypeMap.getSingleton().getMimeTypeFromExtension("png"));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android ACTION_VIEW 多张图像 的相关文章

随机推荐

  • 找不到引用的切入点

    我正在开发我的第一个方面 但遇到了以下麻烦 我的方面类 Component Aspect public class MyAspect Pointcut execution com mypackage MyClass method publi
  • 无法从 Asp.Net WebApi 操作方法连接到网站 URL

    我正在尝试使用 Asp Net Web Api 项目中的 WebClient 连接到 URL 我的目的是获取内容并创建网站缩略图 示例代码 using var client new WebClient var contents client
  • 如何在 dplyr::across 中的 .names 参数内使用字符串操作函数

    虽然我试图搜索它是否重复 但我找不到类似的问题 虽然一个similar那里有一个 但这与我的要求有些不同 我的问题是我们是否可以使用字符串操作函数substr or stringr str remove inside names的论证dpl
  • 使用 PHP 覆盖文件中的行

    覆盖文件中特定行的最佳方法是什么 我基本上想在文件中搜索字符串 parsethis 并用其他内容覆盖该行的其余部分 如果文件真的很大 日志文件或类似的文件 并且您愿意为了内存消耗而牺牲速度 您可以打开两个文件并基本上做到这一点杰里米 鲁滕建
  • 我将 Microsoft Edge Chromium 与 Selenium 结合使用,并且不断将 msedge.exe 作为启动项

    这是我用于在 Microsoft Edge Chromium 浏览器中使用 Selenium 的代码 from selenium webdriver edge options import Options from selenium web
  • EnumDisplayDevices 提供两个显示器,即使我有一个

    我正在使用 Python 制作夜灯应用程序 我正在使用 Windows API 来使用 Gamma Ramp 来完成我的任务 我用了枚举显示设备W from 用户32 dll获取连接到我的电脑的显示器的信息和数量 我的桌面上只有一台显示器
  • 如何使用 Struts 2 在同一行中放置多个文本字段而不使用 theme="simple"?

    我想设计一个使用 Struts 2 在同一行显示用户 ID 和密码的网页 如何在不使用的情况下管理它theme simple
  • SELECT 所有最新记录的一列中具有非空值的不同关键字

    继这个问题之后选择一列中具有非空值的最新记录 我知道我的数据有问题 id keyword count date 1 ipod 200 2009 08 02 2 ipod 250 2009 09 01 3 ipod 150 2009 09 0
  • 为什么 C# 复制中属性的密封重写不会重写基类型的访问器?

    在 C 中 重写自动属性并仅提供一个访问器通过以下方式进行反射PropertyInfo 失去 另一个 即使它是在基类中定义的 乍一看可能很奇怪 但似乎是合理的经过更详细的分析 然而 改变override to sealed override
  • 为什么 joblib 并行执行会使运行时间变慢?

    我想在 3D 中打乱值numpy array 但仅当它们 gt 0 时 当我使用单核运行函数时 它比使用 2 个核运行要快得多 这远远超出了创建新的 python 进程的开销 我缺少什么 以下代码输出 random shuffling of
  • 带渐变填充的圆形箭头形状

    对于我的在线游戏 UI 我决定制作爬坡赛车 Android 游戏 的按钮 这就是我目前所拥有的 body color white font family Impact fantasy font size 40px line height 1
  • 修改 Javassist 中的行号

    所以我最近一直在使用Javassist 但我遇到了一个我无法找到答案的问题 CtMethod 的 insertAt 方法允许您在特定行号处插入代码 但它会覆盖该行还是保留它 以及如何使其执行与默认情况相反的操作 我有一个应用程序 它在运行之
  • php 循环浮点数

    我已阅读文档并对圆形有清晰的了解 但我没有找到解决问题的有用信息 问题是我有浮点数 比如说 1 09 我想显示它 2 而不是 1 如果我们使用舍入函数 它会显示 1 帮我解决这个问题 更多细节 TotalPaidRemaining 1090
  • WebDriverException:缺少“类型”参数

    我在 python 中使用 Selenium Webdriver 我的设置的环境条件是 蟒蛇2 7 12硒3 4 2火狐浏览器52 0 2Geckodriver v 0 13 0在运行 python 脚本时 以下代码行给出错误 self d
  • 表情符号导致行高发生变化

    p Alternatively you can use percentages which will be calculated with respect to the width of the generated box s contai
  • Android 多播套接字停止监听

    我在 Android 上有一个服务 可以监听并响应通过多播接收的数据包 这在大多数情况下都有效 但不幸的是 我发现它时不时地会停止接收数据包 线程在调用 MulticastSocket receive 时保持阻塞状态 但没有任何结果 我一直
  • php 布尔数组访问

    我最近偶然发现以下内容 这产生了NULL 但是 出乎我意料 without任何通知 例如 确实产生了众所周知的 Notice Uninitialized string offset 123 in on line 1 这里发生了什么 有这种行
  • 使用linux bash脚本清除存档文件

    这是我的问题 我有一个文件夹 其中存储了具有特定格式的多个文件 文件名称 类型MM DD YYYY HH MM 其中 MM DD YYYY HH MM 是其创建时间 当然 可能有多个同名文件 但时间不同 我想要的是一个可以保留每个文件的 3
  • mod-rewrite 重定向但阻止直接访问

    我想将所有内容重定向到 www example com public 但阻止直接访问 www example com public file1 www example com public file2 etc 最终的 URL 应该是 www
  • Android ACTION_VIEW 多张图像

    我希望我的应用程序显示一到三张照片 直到运行时我才知道从互联网上下载了多少照片 我不知道如何创建一个意图来显示照片 现在 我将它们缓存在 SD 卡上的一个文件夹下 该文件夹是我通过执行类似操作 无错误检查 创建的 final File ex