6
votes

Récupérer uniquement les 100 premières rangées d'image de MediaStore

Y a-t-il un moyen de limiter le résultat extrait de MediaStore à l'aide de la fonction ManageedQuery sur Android. Depuis que j'ai actuellement une grille qui affichant toutes les photos trouvées sur la carte SD, mais il est trop intensif de la récupérer afin que je décide de limiter le résultat extrait du magasin multimédia mais que vous ne trouvez pas une fonction limite pouvant réduire l'ensemble de données résultant. .

aide s'il vous plaît


0 commentaires

3 Réponses :


3
votes

Vous pouvez limiter le résultat à l'aide du paramètre de certificat dans Query méthode. Quelque chose comme ça xxx

Ceci commandera le résultat défini par ID et limiter le résultat.


0 commentaires

22
votes

Utiliser la commande dans la méthode de la requête du contentResolver pour implémenter votre fonction, Tels que "Nom de ColumnName ASC Numéro de limite"

Dans mon cas: P>

cursor = resolver.query(STORAGE_URI, projection,
                        Media.BUCKET_DISPLAY_NAME + "=?",
                        new String[] { folderName },
                        " _id asc limit " + num);


3 commentaires

Et vous avez besoin de la partie " ASC", vous ne pouvez pas simplement mettre "limite n".


Assurez-vous de ne pas utiliser la mise en forme de chaîne pour créer le paramètre car elle effectue la localisation par défaut, c'est-à-dire que l'instruction suivante causera une exception SQL sur les téléphones arabes: SortorOrdon = string.format ("_ID ASC Limit (% d)", num);


@Tomsusel plutôt ne s'appuyer pas sur les paramètres régionaux par défaut :)



2
votes

Lorsque vous ciblez Android 11, la réponse suggérée provoquera une exception, avec java.lang.illegalargumentException: limite de jeton non valide code>

à la place, vous devez fournir un paramètre de requête "limite" sur l'URI que le MediaProvider lira. P>

val queryUri = IMAGE_URI.buildUpon().appendQueryParameter("limit", limit.toString()).build()


1 commentaires

Cela n'a pas fonctionné pour moi, ce paramètre de requête a été ignoré.