2016-06-23 57 views
0

我想从我的手机内存中选择多个图像使用意图和存储在数组中的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,真);”它允许我选择多个图像,但选择后我怎么能得到所有选定的图像?

+0

https://android-arsenal.com/details/1/2019 –

回答

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

为了获得更多的开放的,你可以删除休息,结果添加到地址列表。

 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)”。