从图库中选择多个图像

VVB*_*VVB 1 android uri gallery image-gallery

如何读取/检索路径或Uri[]从画廊中选择多个图像?

我想称之为:

Uri[] originalUri = data.getData();
Run Code Online (Sandbox Code Playgroud)

但实际上我只得到这个,只取一个Uri:

 Uri originalUri = data.getData();
Run Code Online (Sandbox Code Playgroud)

Her*_*rry 9

@RIT正如你所说,你想在andorid kitkat中获得多个图像.

我尝试下面的代码,适用于Xperia M2 4.4.4

用于开始图像选择活动

private void startImageSelection(){

        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"), PICK_IMAGES);
    } 
Run Code Online (Sandbox Code Playgroud)

但用户需要长按选择图像

现在读取所选图像Uri使用下面代码为onActivityResult

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        // TODO Auto-generated method stub

        if(requestCode==PICK_IMAGES){

            if(resultCode==RESULT_OK){
                //data.getParcelableArrayExtra(name);
                //If Single image selected then it will fetch from Gallery
                if(data.getData()!=null){

                    Uri mImageUri=data.getData();

                }else{
                    if(data.getClipData()!=null){
                        ClipData mClipData=data.getClipData();
                        ArrayList<Uri> mArrayUri=new ArrayList<Uri>();
                        for(int i=0;i<mClipData.getItemCount();i++){

                            ClipData.Item item = mClipData.getItemAt(i);
                            Uri uri = item.getUri();
                            mArrayUri.add(uri);

                        }
                        Log.v("LOG_TAG", "Selected Images"+ mArrayUri.size());
                    }

                }

            }

        }

        super.onActivityResult(requestCode, resultCode, data);
    }
Run Code Online (Sandbox Code Playgroud)