Android的图片选择器(Image Picker)本身并不支持批量操作。但是,您可以通过以下方法实现批量选择图片的功能:
-
使用第三方库:有一些第三方库可以帮助您实现批量选择图片的功能。例如,您可以使用 PhotoPicker 这个库。它允许用户从相册中选择多个图片和视频。
-
自定义实现:您也可以自己编写代码来实现批量选择图片的功能。以下是一个简单的示例:
private static final int REQUEST_CODE_PICK_IMAGES = 1; private static final int REQUEST_CODE_PICK_VIDEO = 2; private ListimageUris = new ArrayList<>(); private List videoUris = new ArrayList<>(); private void pickImages() { Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); intent.setType("image/*"); intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true); startActivityForResult(intent, REQUEST_CODE_PICK_IMAGES); } private void pickVideos() { Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Video.Media.EXTERNAL_CONTENT_URI); intent.setType("video/*"); intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true); startActivityForResult(intent, REQUEST_CODE_PICK_VIDEO); } @Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == RESULT_OK) { if (requestCode == REQUEST_CODE_PICK_IMAGES) { imageUris.addAll((ArrayList ) data.getParcelableArrayListExtra(Intent.EXTRA_STREAM)); } else if (requestCode == REQUEST_CODE_PICK_VIDEO) { videoUris.addAll((ArrayList ) data.getParcelableArrayListExtra(Intent.EXTRA_STREAM)); } } }
在这个示例中,我们定义了两个方法 pickImages()
和 pickVideos()
分别用于选择图片和视频。我们使用 Intent.ACTION_PICK
和 MediaStore.Images.Media.EXTERNAL_CONTENT_URI
(对于图片)以及 MediaStore.Video.Media.EXTERNAL_CONTENT_URI
(对于视频)来启动相册选择器,并通过 Intent.EXTRA_ALLOW_MULTIPLE
参数允许用户选择多个文件。
在 onActivityResult()
方法中,我们将选择的图片和视频的 Uri 添加到相应的列表中。您可以根据这些 Uri 进行后续的批量操作,例如预览、删除等。