我想为用户提供选择多张图片的选项。这是我的代码,目的是让用户选择想要的图库并从那里选择图片:
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
按钮时,我可以在默认图库之间进行选择,例如在本例中 - Samsung 或 Google 相册等...
当我选择 Google Photos 画廊时,我可以选择照片,但在同一设备(三星 Galaxy S6 Edge)上,我选择三星的画廊后,我连一张照片都无法选择,只是它们的显示,无论我点击照片多长时间,它都不会改变。
当我从他们的启动器进入三星的画廊时,显示不同,我可以长按以选择图像。
我也查看了小米的默认图库,确实有效,我可以选择照片。
如何更改它并打开正确的图库显示?
最佳答案
This is my code in order to let the user choose the wanted gallery and pick images from there
首先,该代码中没有任何内容与“画廊”有很大关系。任意数量的应用程序都可以响应该 Intent
结构,并且这些应用程序不必是“图库”。
其次,ACTION_PICK
不应指定 MIME 类型。参见 the documentation .
第三,ACTION_PICK
不支持EXTRA_ALLOW_MULTIPLE
。参见 the documentation .
after I choose Samsung's gallery, I can't pick even one photo, it's just a display of them, no matter how long I click on a photo, it doesn't change
首先,没有要求所有应用都支持长按内容。
其次,长按模式通常只与多选情况相关,ACTION_PICK
不支持多选。
但是,您完全有可能在三星的应用程序中看到真正的错误。
How can I change it
那么,您可以清理您正在使用的 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
)。
或者,向三星投诉他们应用中的错误。
open the right gallery display?
没有“右画廊显示”。处理特定隐式Intent
(ACTION_PICK
、ACTION_GET_CONTENT
)的是用户,其次是设备制造商。你没有投票权。
您始终可以构建自己的画廊风格图像选择 UI。这将为您提供跨设备的一致结果,但会增加工作量。
关于android - 试图从三星的图库中挑选图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46016971/