J'ai une application où l'utilisateur doit pouvoir choisir plusieurs images pour les envoyer quelque part. Cependant, ils ne peuvent envoyer que cinq images à la fois. Je dois pouvoir limiter le nombre d'images qu'ils peuvent choisir dans la galerie via le sélecteur d'images.
Pour le mettre en une seule phrase: je veux limiter le nombre d'images/photos que l'utilisateur peut sélectionner dans le sélecteur d'images par défaut de la galerie.
Voici le code que j'utilise pour mon sélecteur d'images:
Intent chooseIntent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
chooseIntent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
startActivityForResult(chooseIntent, 2);
Il garde déjà une trace du nombre d'images sélectionnées en haut par défaut:
Existe-t-il un moyen de fixer une limite maximale? Vous souhaitez qu'un utilisateur ne puisse sélectionner que 5 images.
Il garde déjà une trace du nombre d'images sélectionnées en haut par défaut:
Sur cet appareil particulier, peut-être. Veuillez comprendre qu'il existe des milliers de modèles d'appareils Android Android et les fabricants configurent leur propre interface utilisateur pour remplacer celle des applications d'origine. Ne présumez pas que tous les appareils afficheront un nombre dans la barre d'action.
Existe-t-il un moyen de fixer une limite maximale? Vous souhaitez qu'un utilisateur ne puisse sélectionner que 5 images.
Pas via ACTION_PICK
. ACTION_PICK
n'est pas documenté pour prendre en charge EXTRA_ALLOW_MULTIPLE
du tout, et il peut donc y avoir des périphériques qui ne permettent pas la sélection multiple pour ce Intent
. Même sur les actions Intent
pour lesquelles EXTRA_ALLOW_MULTIPLE
fait partie du protocole (par exemple, ACTION_GET_CONTENT
), il n'y a pas d'extras pour contrôler le nombre maximum.
Vous êtes invités à créer votre propre interface utilisateur de sélection d'image, sur la base des résultats de l'interrogation MediaStore
, et à définir vos propres limites. Il existe également plusieurs bibliothèques de sélection d'images , et l'une d'entre elles peut déjà offrir cette fonctionnalité.