Android 从库中单击可拾取多个图像
我是android新手,我编写了从gallery中选择多个图像的代码,为了实现这一点,我编写了两种方法。 在Android 从库中单击可拾取多个图像,android,image,android-intent,android-gallery,Android,Image,Android Intent,Android Gallery,我是android新手,我编写了从gallery中选择多个图像的代码,为了实现这一点,我编写了两种方法。 在onActivityResult上,我正在使用data.getClipdata接收每个图像 这是选择多个图像的第一种方法 Intent intent = new Intent(); intent.setType("image/*"); intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true); intent.setAction(Intent.AC
onActivityResult
上,我正在使用data.getClipdata
接收每个图像
这是选择多个图像的第一种方法
Intent intent = new Intent();
intent.setType("image/*");
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,"Select Picture"), RESULT_LOAD_IMAGE);
Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
startActivityForResult(intent,RESULT_LOAD_IMAGE);
这是选择多个图像的第二种方法
Intent intent = new Intent();
intent.setType("image/*");
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,"Select Picture"), RESULT_LOAD_IMAGE);
Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
startActivityForResult(intent,RESULT_LOAD_IMAGE);
我选择了第二种选择多个图像的方法,因为在实现这一点时,我的应用程序看起来更好,我只需单击即可选择多个图像,并停止使用第一种方法,因为我必须使用长按选择多个图像。在android studio emulator和诺基亚设备USB调试上,一切进展顺利。但在三星的一台设备上,我根本无法选择图像,第一种方法在这里奏效了。所以我的问题是,如果可能的话,如何在这个场景中使用第二种方式实现多个图像,这个问题是否也会出现在其他设备上 正如您在问题中提到的,三星选项1和其他设备选项2都能正常工作。 所以,只要把条件,并检查哪个设备是在那个时候使用
String deviceName = "Samsung";
if(deviceName.e(android.os.Build.MODEL)){
Intent intent = new Intent();
intent.setType("image/*");
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Picture"), RESULT_LOAD_IMAGE);
}else{
Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
startActivityForResult(intent, RESULT_LOAD_IMAGE);
}
我尝试了下面的代码,它的工作。与其检查设备“型号”,不如检查制造商。这将重定向应用程序以打开文档选择器(而不是默认的gallery应用程序),从那里您可以从菜单导航到“照片”
public void captureImageFromGallery() {
Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
String deviceName = "Samsung";
if(deviceName.equalsIgnoreCase(Build.MANUFACTURER)) {
intent.setDataAndType(android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
}
startActivityForResult(intent, REQ_CODE_GALLERY);
}
使用图书馆更好我建议是的,图书馆更重要better@Danial有任何反馈吗?是的,您的代码有帮助,但在选择多个图像时出现了一些问题,因为它发送的是请求而不是命令,所以我更喜欢使用库。Arbaz我的代码工作得很好。我说的是意图。extra_allow_multiple是一个请求,因此某些设备会拒绝多个图像选择,这就是我选择库的原因。我没有其他问题。对不起,我的不好,实际上我以为你正面临这个问题。