使用 Intents 从 Android 上的照片库中选择多张图像

发布于 2024-10-12 20:11:46 字数 347 浏览 6 评论 0原文

@See this https://stackoverflow.com/a/15029515/185022

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

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

有没有办法选择多个图像?

@See this https://stackoverflow.com/a/15029515/185022

I`m trying to select images from gallery, but i only found the way to select a single image.

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

Is there a way to select multiple images?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

疧_╮線 2024-10-19 20:11:46

首先,您需要将 putExtra 与 photoPickerIntent 一起使用,

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();
}

我希望这有帮助

First of all you need to use putExtra with your photoPickerIntent

photoPickerIntent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE);

Then in your on activity result you should get ClipData from Intent like this

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

And iterate this clipData to get URI for specific picked image.

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

I hope this helps

如果没有你 2024-10-19 20:11:46

为什么不尝试 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.
       }
    } 

就像在谷歌群组帖子上看到这个代码块 。试试这个吧。
谢谢。

Why don't you try ACTION_SEND_MULTIPLE thing. You will receive a set of Uris.

Something like

    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.
       }
    } 

Saw this code block on a google-groups post. Just try this out.
Thanks.

孤星 2024-10-19 20:11:46

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

请参阅此处了解详细信息。

I think, you should implement custom gallery for multiple image pick action.

see here in details.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文