【发布时间】:2017-05-29 03:29:31
【问题描述】:
我正在开发一个 Android 应用,用户必须在其中从图库中选择一张图片。此图像应具有 .jpeg/.png 扩展名。
我试过了:
Intent i = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
i.setType("image/jpeg, image/png");
但是,它仍然允许我选择 .gif 图像。我做错了什么?
【问题讨论】:
-
很可能,因为那不是一个有效的 MIME 类型,它无法解析并被忽略。
setType()is not documented to support multiple MIME types。在 Android 4.4+ 上,您可以使用 useEXTRA_MIME_TYPES,但只能使用ACTION_GET_CONTENT和ACTION_OPEN_DOCUMENT。另请注意,ACTION_PICK不一定会调出任何形式的“图库”应用程序。 -
@CommonsWare 好的,但是有没有其他方法可以防止 gif 文件被选中?
-
在 Android 4.4+ 上,尝试使用
EXTRA_MIME_TYPES将您限制为所需的两种 MIME 类型。在较旧的设备上,只要求一种 MIME 类型,如果需要,为用户提供 PNG 或 JPEG 的单独菜单(或其他)选项。或者,不用担心 MIME 类型,如果用户选择 GIF,则自己将其转换为 PNG。 -
好的 :) 非常感谢!
标签: android image android-intent jpeg mime-types