2011-01-20 10 views
29

@see questo https://stackoverflow.com/a/15029515/185022selezionare più immagini da Raccolta foto su Android utilizzando Intenti

`m cercando di selezionare le immagini dalla galleria, ma ho trovato solo il modo per selezionare una singola immagine.

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

C'è un modo per selezionare più immagini?

+0

http://stackoverflow.com/questions/9379579/select-multiple-images-in-android-gallery vedere questa risposta – Abhi

+0

Si potrebbe considerare l'utilizzo il mio progetto: http: //stackoverflow.com/a/12806036/411162 –

risposta

1

Perché non provare cosa ACTION_SEND_MULTIPLE. Riceverai un set di Uris.

Qualcosa di simile

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

visto questo blocco di codice su un google-gruppi Post. Provalo. Grazie.

+0

Per favore, puoi provare a spiegarmi in breve .... – Kalpesh

+1

@kalpesh Ok, è come se attivassi la tua attività con ** Intent.ACTION_SEND_MULTIPLE **, e dovresti scavalcare il tuo * * onActivityResult() **, all'interno del quale si scrive il _code_ sopra. Non ho ancora provato questo codice, dato che sono nel mezzo di qualcosa. Il codice sopra riportato verifica, se l'azione è quella che hai attivato e contiene dati aggiuntivi, quindi raccoglie i risultati in un elenco di array. Per ulteriori dettagli, consultare [questo] (http://developer.android.com/reference/android/content/Intent.html#ACTION_SEND_MULTIPLE). Spero che questo aiuti. :) – VenoM

+0

Voglio dire che la risposta di willtate è più che sufficiente. – VenoM

1

Penso che dovresti implementare la galleria personalizzata per più azioni di selezione immagine.

vedere here in dettagli.

+0

ma apre tutte le immagini, come aprire la cartella vise –

3

Prima di tutto è necessario utilizzare putExtra con il photoPickerIntent

photoPickerIntent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE); 

Poi, nel tuo sull'attività risultato si dovrebbe ottenere ClipData da intenti come questo

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

E iterare questo clipData per ottenere URI per un'immagine selezionata specifica.

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

Spero che questo aiuta

+2

EXTRA_ALLOW_MULTIPLE aggiunto nel livello API 18 – mbelsky

Problemi correlati