我想在我的应用程序的onActivity Result方法中从图库中获取多个图像,但我无法为其创建游标。如果我不使用光标,我无法获得所有图像的Uris。如果我必须选择单个图像,代码非常简单:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data) {
Uri selectedImage = data.getData();
String[] filePathColumn = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(selectedImage,
filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String picturePath = cursor.getString(columnIndex);
cursor.close();
// String picturePath contains the path of selected Image
}
任何人都可以帮助我。
答案 0 :(得分:7)
图库似乎不允许多个项目,但其他可能响应选择器意图的应用程序可以(例如我的Samsung Galaxy平板电脑上的照片)。您可以使用getClipData()获取多个Uris,例如:
ClipData clip = data.getClipData();
for(int i = 0; i < clip.getItemCount(); i++) {
ClipData.Item item = clip.getItemAt(i);
Uri uri = item.getUri();
// Process the uri...
}
请注意,您可能会在问题中获得data.getData()的响应,因此需要检查两者...
答案 1 :(得分:0)
我不确定SDK是否允许您使用意图来选择多个图像。您可能需要开发自己的图像选择器。
你可以探索这个github仓库,看看它是如何工作的: https://github.com/luminousman/MultipleImagePick