web-dev-qa-db-fra.com

Sélectionnez plusieurs images dans la galerie de photos sur Android using Intents

@Voir ceci https://stackoverflow.com/a/15029515/185022

J'essaie de sélectionner des images de la galerie, mais je n'ai trouvé que le moyen de sélectionner une seule image.

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

Existe-t-il un moyen de sélectionner plusieurs images?

29
spe
7
Siklab.ph

Tout d'abord, vous devez utiliser putExtra avec votre photoPickerIntent

photoPickerIntent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE);

Ensuite, dans votre résultat d'activité, vous devriez obtenir ClipData de Intent comme ceci

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

Et itérez ce clipData pour obtenir l'URI d'une image sélectionnée spécifique.

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

J'espère que ça aide

4
lukaspp

Je pense que vous devriez implémenter une galerie personnalisée pour plusieurs actions de sélection d'images.

voir ici en détails.

1
Bhavesh Hirpara

Pourquoi n'essayez-vous pas ACTION_SEND_MULTIPLE? Vous recevrez un ensemble d'Uris.

Quelque chose comme

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

J'ai vu ce bloc de code sur un message de Google Groupes. Essayez-le. Merci.

1
VenoM