从手机获取多个图像?

时间:2016-06-23 13:43:04

标签: android xml

我试图使用Intent从我的手机内存中选择多个图像并将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);"它允许我选择多个图像但是在选择之后如何获得所有选择的图像?

1 个答案:

答案 0 :(得分: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:&#34; if(requestCode == 1)&#34;。