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
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);
}