在安卓中,可以使用系统提供的Intent来选择多个图片。以下是一个示例代码:
首先,在AndroidManifest.xml文件中添加以下权限:
然后,在你的Activity中添加以下代码:
private static final int REQUEST_CODE = 1;
private ArrayList selectedImages;
// 启动相册选择图片
private void selectImages() {
Intent intent = new Intent();
intent.setType("image/*");
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "选择图片"), REQUEST_CODE);
}
// 处理选择图片的结果
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
if (data != null) {
selectedImages = new ArrayList<>();
if (data.getClipData() != null) {
// 多张图片的情况
int count = data.getClipData().getItemCount();
for (int i = 0; i < count; i++) {
Uri imageUri = data.getClipData().getItemAt(i).getUri();
selectedImages.add(imageUri);
}
} else if (data.getData() != null) {
// 单张图片的情况
Uri imageUri = data.getData();
selectedImages.add(imageUri);
}
// 在这里处理选择的图片,可以显示到ImageView中或者进行其他操作
// ...
}
}
}
在上述代码中,我们首先创建一个Intent对象,并设置它的类型为image/*
,然后通过putExtra()
方法设置EXTRA_ALLOW_MULTIPLE
参数为true
,这样就可以允许用户选择多个图片。接着,我们通过startActivityForResult()
方法启动系统的相册应用,并传入上述Intent对象和请求码。
在onActivityResult()
方法中,我们首先检查返回的请求码和结果码是否匹配,然后通过data
参数获取选择的图片。如果getClipData()
方法不为空,表示选择了多张图片,我们可以通过getItemCount()
和getItemAt()
方法遍历选择的图片并将它们的Uri添加到selectedImages
列表中。如果getClipData()
方法为空但getData()
方法不为空,表示只选择了一张图片,我们直接将它的Uri添加到selectedImages
列表中。
最后,我们可以在selectedImages
列表中处理选择的图片,例如将它们显示到ImageView中或者进行其他操作。