【问题标题】:get multiple image from phone?从手机获取多张图片?
【发布时间】:2023-03-13 02:56:01
【问题描述】:

我正在尝试使用 Intent 从我的手机内存中选择多个图像并将 uri 存储在数组中,但我不知道该怎么做,请帮助我。

我只能得到一个图像 uri 这是我的代码:

   Intent intent = new Intent();
   intent.setType("image/*");
   intent.setAction(Intent.ACTION_GET_CONTENT);
   startActivityForResult(Intent.createChooser(intent,"Select Picture"), 1);

 protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{
                super.onActivityResult(requestCode, resultCode, data);
                Uri uri=data.getData();
    }

使用“intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);”它允许我选择多个图像,但选择后如何获取 uri 所有选定的图像??

【问题讨论】:

标签: android xml


【解决方案1】:

uri的获取方式并不总是相同的,通常我用这种方法来推断一个值:

private Uri detectFileToUploadUri(Intent data) {
    Uri result = null;
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
        ClipData clip = data.getClipData();
        if (clip != null) {
            for (int i = 0; i < clip.getItemCount(); i++) {
                Uri uri = clip.getItemAt(i).getUri();
                if (uri != null) {
                    result = uri;
                    break;
                }
            }
        }
    }
    if (result == null && data.getData() != null) {
        result = data.getData();
    }
    return result;
}

要获取更多的 Uri,您可以删除中断并将结果添加到 uri 列表中。

        ClipData clip = data.getClipData();
        if (clip != null) {
            for (int i = 0; i < clip.getItemCount(); i++) {
                Uri uri = clip.getItemAt(i).getUri();
                if (uri != null) {
                    results.add(uri);
                }
            }
        }

另外,最好在 onActivityResult 代码中插入一个 if:“if (requestCode == 1)”。

【讨论】:

    猜你喜欢
    • 2019-09-13
    • 1970-01-01
    • 1970-01-01
    • 2015-06-10
    • 1970-01-01
    • 1970-01-01
    • 2017-06-14
    • 2013-07-27
    • 2018-12-04
    相关资源
    最近更新 更多