我想给用户提供选择多张图片的选项。这是我的代码,以便让用户选择想要的图库并从那里选择图像:
public void pickImages() {
Intent intent = new Intent( Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
intent.setType("image/*");
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
startActivityForResult(Intent.createChooser(intent,"Select Picture"), PICK_IMAGE_MULTIPLE);
}
当我点击pickImages
按钮时,我可以在默认图库之间进行选择,例如三星,或Google照片,等...
当我选择Google照片库时,我可以选择照片,但在同一台设备(三星Galaxy S6 Edge)上,在我选择三星的画廊之后,我可以'甚至只拍一张照片,它只是显示它们,无论我点击一张照片多久,它都不会改变。
当我从发射器进入三星的画廊时,显示效果不同,我可以长按以选择图像。
我也检查了小米的默认画廊,它有效,我可以选择照片。
如何更改并打开正确的图库显示?
答案 0 :(得分:2)
这是我的代码,以便让用户选择想要的图库并从那里选择图像
首先,该代码中没有任何内容与“图库”有很大关系。任意数量的应用都可以响应该Intent
结构,而这些应用不必是“图库”。
其次,ACTION_PICK
不应指定MIME类型。请参阅the documentation。
第三,ACTION_PICK
不支持EXTRA_ALLOW_MULTIPLE
。请参阅the documentation。
在我选择三星的画廊之后,我甚至无法选择一张照片,它只是显示它们,无论我点击一张照片多久,它都不会改变
首先,并不要求所有应用都支持对内容进行长时间点击。
其次,长按模式通常仅与多选情况相关,ACTION_PICK
不支持多选。
但是,你完全有可能在三星的应用程序中看到一个真正的错误。
如何更改
好吧,你可以清理你正在使用的ACTION_PICK
Intent
(删除setType()
和putExtra()
来电,看看是否有任何变化。
或者,您可以切换到ACTION_GET_CONTENT
,其中 使用setType()
而 有可能支持EXTRA_ALLOW_MULTIPLE
。不要求任何ACTION_GET_CONTENT
实施支持EXTRA_ALLOW_MULTIPLE
,也不要使用Uri
(MediaStore.Images.Media.EXTERNAL_CONTENT_URI
)。
或者,向三星抱怨他们应用中的错误。
打开右侧图库显示?
没有“正确的图库展示”。处理特定隐式Intent
(ACTION_PICK
,ACTION_GET_CONTENT
)的是用户,其次是设备制造商。你没有得到投票。
您始终可以构建自己的图库样式图像选择UI。这将为您提供跨设备的一致结果,但这将是更多的工作。
答案 1 :(得分:0)
在大多数三星设备上,sdkmanager --update
返回ACTION_PICK
时存在问题。一种解决方法是使用null
选择您的图像。
ACTION_GET_CONTENT
将返回ACTION_GET_CONTENT
,您应该handle appropriately。
理想的方案是执行某种条件检查以确定您使用的选择器,以免将自己限制在一种变通方法上,以期希望所有设备都能发挥相同的功能。