【问题标题】:Select multiple images from Photo Gallery on Android using Intents使用 Intents 从 Android 上的照片库中选择多个图像
【发布时间】:2011-06-12 09:52:59
【问题描述】:

@看到这个https://stackoverflow.com/a/15029515/185022

我正在尝试从图库中选择图像,但我只找到了选择单个图像的方法。

Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
photoPickerIntent.setType("image/*");
startActivityForResult(photoPickerIntent, 1);

有没有办法选择多张图片?

【问题讨论】:

标签: java android image gallery


【解决方案1】:

【讨论】:

    【解决方案2】:

    首先你需要在你的 photoPickerIntent 中使用 putExtra

    photoPickerIntent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE);
    

    然后在您的活动结果中,您应该像这样从 Intent 获取 ClipData

    ClipData clipData = data.getClipData();
    //Where data is param intent of onActivityForResult
    

    并迭代此 clipData 以获取特定拾取图像的 URI。

    for (int i = 0; i < clipData.getItemCount(); i++){
        Uri uri = clipData.getItemAt(i).getUri();
    }
    

    希望对你有帮助

    【讨论】:

    • 在 API 级别 18 中添加了 EXTRA_ALLOW_MULTIPLE
    【解决方案3】:

    你为什么不试试 ACTION_SEND_MULTIPLE 的东西。您将收到一套 Uris。

    类似

        if (Intent.ACTION_SEND_MULTIPLE.equals(action))
            && Intent.hasExtra(Intent.EXTRA_STREAM)) {
            ArrayList<Parcelable> list =
        intent.getParcelableArrayListExtra(Intent.EXTRA_STREAM);
            for (Parcelable parcel : list) {
               Uri uri = (Uri) parcel;
               /// do things here.
           }
        } 
    

    在 google-groups 帖子上看到了这个代码块。试试这个。 谢谢。

    【讨论】:

    • @kalpesh 好的,这就像你用 Intent.ACTION_SEND_MULTIPLE 触发你的活动,并且应该覆盖你的 onActivityResult(),你在里面写上面的代码。我还没有尝试过这段代码,因为我正在做一些事情。上面的代码只是验证,如果动作是你触发的并且它有额外的数据,然后将结果收集到一个数组列表中。有关详细信息,请参阅this。希望这可以帮助。 :)
    • 我的意思是willtate的回答绰绰有余。
    • 首先感谢您的回复。但是对不起,我按照你所说的那样尝试你的代码,但是这个 Intent 被调用来从我的设备发送活动。我是 android 开发人员的新手所以他们可能犯了我的错误。现在,我遵循 willtake 的答案.....
    • 对不起,我的错误,Send 不会让你选择。忘记这个。
    • 没关系....我认为likeaboss的答案也非常有用....我认为在android中,当我们将其用作自定义时,一切都会变得更好......你说什么...?
    【解决方案4】:

    我认为,您应该为多个图像选择操作实现自定义图库。

    详见here

    【讨论】:

    • 但它会打开所有图像,如何打开文件夹虎钳
    猜你喜欢
    • 1970-01-01
    • 2012-03-21
    • 2020-10-02
    • 2017-09-06
    • 1970-01-01
    • 2018-10-04
    • 1970-01-01
    • 1970-01-01
    • 2012-03-06
    相关资源
    最近更新 更多