Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从库中单击可拾取多个图像_Android_Image_Android Intent_Android Gallery - Fatal编程技术网

Android 从库中单击可拾取多个图像

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

我是android新手,我编写了从gallery中选择多个图像的代码,为了实现这一点,我编写了两种方法。 在
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是一个请求,因此某些设备会拒绝多个图像选择,这就是我选择库的原因。我没有其他问题。对不起,我的不好,实际上我以为你正面临这个问题。