J'utilise le mode Gallery3D - mais je veux qu'il affiche uniquement les images d'un sous-dossier sur la carte SD, pas toutes les images qui y sont stockées. Pour ce faire, j'ai essayé de changerUri de FilePath
public static final Uri STORAGE_URI = Images.Media.EXTERNAL_CONTENT_URI;
à
public static final Uri STORAGE_URI = Uri.fromFile(new File(ROOT_DIR));
,
où String ROOT_DIR = Environment.getExternalStorageDirectory().toString() + "/mySubDirectory";
mais je suppose que cela est en train de transformer un content://
-uri à un file://
-uri et cela peut être un problème?
Dans tous les cas, il ne fonctionne pas :-(! Au lieu de simplement montrer des images de la ROOT_DIR
-directory et ses sous-répertoires, il montre aucune image (« Galerie vide »). Quelqu'un pourrait-il me diriger dans la bonne direction quant à ce que je fais mal?
Merci, Brian. Malheureusement, cela ne fonctionne pas non plus. J'ai seulement vu que 'withAppendedPath' était utilisé avec une chaîne comme chemin, par ex. 'Uri u2 = Uri.withAppendedPath (u," 1 ");' qui fait u2: 'content: // media/externe/images/media/1', je ne pense pas qu'un chemin Uri réel est valide extension de la base-Uri? Je suppose que je dois filtrer la colonne 'MediaStore.Images.Media.DATA' par filepath ... d'une certaine manière? – Nick
J'avais suggéré d'utiliser 'Uri.encode()' car la documentation de 'pathSegment' disait qu'il fallait un" segment de chemin codé pour s'ajouter ". J'ai édité ma réponse avec une autre suggestion. – Brian
Merci pour votre modification. J'ai déjà essayé de changer le seau de caméra dans mon répertoire (plutôt que de le laisser dans '/ DCIM'), mais ce morceau de code semble juste gérer l'étiquette de la caméra et le symbole -icon sur le dossier de caméra respectif (ie montrer un "Camera" -icon ou un "Folder" normal -icon). – Nick