Android的圖片選擇器(Image Picker)本身并不支持批量操作。但是,您可以通過以下方法實現批量選擇圖片的功能:
使用第三方庫:有一些第三方庫可以幫助您實現批量選擇圖片的功能。例如,您可以使用 PhotoPicker 這個庫。它允許用戶從相冊中選擇多個圖片和視頻。
自定義實現:您也可以自己編寫代碼來實現批量選擇圖片的功能。以下是一個簡單的示例:
private static final int REQUEST_CODE_PICK_IMAGES = 1;
private static final int REQUEST_CODE_PICK_VIDEO = 2;
private List<Uri> imageUris = new ArrayList<>();
private List<Uri> 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<Uri>) data.getParcelableArrayListExtra(Intent.EXTRA_STREAM));
} else if (requestCode == REQUEST_CODE_PICK_VIDEO) {
videoUris.addAll((ArrayList<Uri>) 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 進行后續的批量操作,例如預覽、刪除等。