2012-08-27 3 views
1

J'ai une application qui a beaucoup de photos. L'image totale est enregistrée sur une carte SD en raison du grand nombre d'images. Le problème principal est que les images sont disponibles dans la galerie. Je veux un moyen de cacher l'image de la galerie, mais doit être disponible pour mon application.Rendre l'image disponible uniquement pour mon application Android

J'ai mis "." Devant le nom de fichier pour le rendre caché mais les images ne sont pas affichées dans l'application de mai aussi!

.. Toute aide .. Connectez

merci ..

+0

Je pense que recherches android images par l'extension. Essayez de suffixer les images que vous voulez cacher par un mot unique comme ".pix" ou les initiales de votre application. – rahul

Répondre

2

Galerie gère tous les fichiers multimédia qu'il connaît, donc si vous voulez rester à l'écart de vos biens vous avez obtenu deux solutions. Tout d'abord, ajoutez le fichier .nomedia au dossier contenant vos images, et Gallery devrait l'ignorer (la plupart des utilisateurs d'images honoreront .nomedia, mais il n'y a aucune garantie). Une autre solution consiste à utiliser son propre format de fichier propriétaire, de sorte que Gallery ou d'autres outils ne pourront pas le traiter. Je recomment .nomedia si c'est une solution suffisante

+0

[ici] (http://stackoverflow.com/questions/10697276/android-nomedia-not-working-for-images) il a été suggéré de changer l'extension de fichier devrait également fonctionner plutôt bien. – harism

+0

@harism: J'ai utilisé ".nomedia" mais les images n'étaient pas affichées dans mon application! – TheReaper

+2

changer l'extension du fichier est une idée faible, car il n'est pas garanti que le visualisateur de médias pourrait même y jeter un coup d'œil (bien sûr, c'est plus simple à faire mais ...).Beaucoup de téléspectateurs essaient de comprendre le format de fichier en lisant l'en-tête du fichier et en essayant de savoir s'il est connu. C'est comme attendre que * .apk soit sécurisé car il n'est pas nommé * .zip (alors qu'il s'agit en fait d'archive zip régulière). Donc, ".nomedia" a plus de sens que de changer le nom de fichier pour qu'il soit "cryptique" –

0

Je pense que l'endroit où vous enregistrez les images comptent, essayez de les enregistrer dans le répertoire de cache de l'application, ou le répertoire des fichiers.

vous pouvez accéder au répertoire de cache à l'aide: getCacheDir() dans votre activité. et votre répertoire de fichiers: getFilesDir()

ces deux répertoires ne doivent pas être visibles ou accessibles à toutes les autres applications attendent votre application,

+0

merci, je vais essayer – TheReaper

0

J'utilise des actifs pour ce faire dans mon application.

+0

Je ne peux pas utiliser les actifs parce que j'ai un grand nombre d'images. Voilà pourquoi je suis en train de sauvegarder les images dans la carte SD – TheReaper

0

Ajouter un fichier .nomedia dans le dossier d'image. La chose importante est que, le dossier devrait être vide, lorsque vous ajoutez un fichier .nomedia. Si le dossier contient des images avant d'ajouter le fichier '.nomedia', la galerie ne les cachera pas et cachera les images ajoutées après le fichier '.nomedia'. Le premier fichier ajouté au dossier image doit donc être '.nomedia'.

dis Hope vous aidera

Thankx,

0

Cette ligne de code peut ajouter le fichier .nomedia dans votre répertoire et rend vos images cachées de la galerie

Chaîne Nomedia = » .nomedia ";

Dossier File = new File (Environment.getExternalStorageDirectory() + "/ mydir"); if (Folder.mkdir()) { nomediaFile = nouveau fichier (Environment.getExternalStorageDirectory() + "/ mydir /" + NOMEDIA); if (! NomediaFile.exists()) { nomediaFile.createNewFile(); }}

Questions connexes