How to select multiple images from gallery in android?

前端 未结 9 1853
無奈伤痛
無奈伤痛 2020-11-27 14:48

I am making a project in which i want to select multiple photos from gallery and want to save that in imageview array. I am able to import single image and save at imageview

9条回答
  •  挽巷
    挽巷 (楼主)
    2020-11-27 15:15

    Complete Working Answer

    Intent

    Intent intent = new Intent();
    intent.setType("image/*");
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
                    intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
    }
    intent.setAction(Intent.ACTION_GET_CONTENT);
    startActivityForResult(Intent.createChooser(intent, "Select Picture"), PICK_IMAGE_MULTIPLE);
    
    

    Activity Result

        @Override
        public void onActivityResult(int requestCode, int resultCode, Intent data) {
            try {
                // When an Image is picked
                if (requestCode == PICK_IMAGE_MULTIPLE && resultCode == RESULT_OK
                        && null != data && null != data.getClipData()) {
        
                    ClipData mClipData = data.getClipData();
        
                    Toast.makeText(getActivity(), "You picked " +
                                    (mClipData.getItemCount() > 1 ? mClipData.getItemCount() + "Images" :
                                            mClipData.getItemCount() + "Image"),
                            Toast.LENGTH_LONG).show();
        
                    pickedImageContainer.removeAllViews();
        
                    int pickedImageCount;
        
                    for (pickedImageCount = 0; pickedImageCount < mClipData.getItemCount();
                         pickedImageCount++) {
        
                        ImageView productImageView =
                                new ImageView(getActivity());
        
                        productImageView.setAdjustViewBounds(true);
        
                        productImageView.setScaleType(ImageView.ScaleType.FIT_XY);
        
                        productImageView.setLayoutParams(new LinearLayout
                                .LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
                                LinearLayout.LayoutParams.MATCH_PARENT));
        
                        pickedImageContainer.addView(productImageView);
        
                        Glide.with(getActivity())
                                .load(mClipData.getItemAt(pickedImageCount).getUri())
                                .fitCenter().placeholder(R.drawable.map_default)
                                .error(R.drawable.map_default)
                                .into(productImageView);
                    }
                } else {
                    Toast.makeText(getActivity(), "You haven't picked any Image",
                            Toast.LENGTH_LONG).show();
                }
            } catch (Exception e) {
                Toast.makeText(getActivity(), "Error: Something went wrong " + e.getMessage(), Toast.LENGTH_LONG)
                        .show();
            }
            super.onActivityResult(requestCode, resultCode, data);
        }
    

提交回复
热议问题