在onActivityResult方法中从库中接收多个图像

Pun*_*r90 5 android android-gallery android-listview

我想在我的应用程序的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
     }
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮助我.

Met*_*ete 8

Gallery似乎不允许多个项目,但可能响应选择器意图的其他应用程序可以(例如我的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...
}
Run Code Online (Sandbox Code Playgroud)

请注意,您可能还会像在您的问题中那样获得data.getData()的响应,因此有必要同时检查两个...


tho*_*asg 0

我不确定 SDK 是否允许您使用意图来选择多个图像。您可能必须开发自己的图像选择器。

您可以探索这个 github 存储库并了解它是如何工作的: https://github.com/luminousman/MultipleImagePick