Comment faire pour récupérer des images à partir de la mémoire cache de picasso?
Je suis à l'aide de picasso bibliothèque pour le chargement des images .À défaut de picasso, Il utilise la mémoire cache interne pour le chargement des images.Mais comme pour mon configuration de l'application ,j'ai pour utilisation externe mémoire cache(Cache sur le Disque).
j'ai donc utilisé ce code pour le Cache sur le Disque
File httpCacheDir = new File(getApplicationContext().getExternalCacheDir(),"http");
long httpCacheSize = 10 * 1024 * 1024; //10 MiB
HttpResponseCache.install(httpCacheDir, httpCacheSize);}
Picasso est flexible. Alors maintenant, il met en cache les images dans la carte Sd externe..
Les caches sont stockées dans sdcard/android/data/nom_du_paquet/cache/http
Les caches sont stockées dans le ".1" ,".0". formats
alors j'ai juste ouvert les portes et les changements dans le ".1""."jpg".il donne des images à ce dont j'ai besoin.
Mais comment le faire en programmant? mais picasso lui-même les caches de ma mémoire, dans mon app pour le chargement de l'image dans imageview.mais je dois les enregistrer dans la carte sd directement en tant qu'images/définir un bitmap en tant que fond d'écran en mode hors connexion?
Les kurdes Le nom du fichier ressembler crypté en Md5 hash..au-dessus de 40 mots .
pour les enregistrer sur carte sd sans avoir à télécharger de nouveau ou de définir comme fond d'écran directement..
OriginalL'auteur Asthme | 2013-08-28
Vous devez vous connecter pour publier un commentaire.
Vous pouvez fournir votre propre
Cache
mise en œuvre lors de la construction de votrePicasso
instance. De cette façon, vous pouvez fournir plus de méthodes que vous pouvez appeler pour récupérer des bitmaps directement à partir de votre mémoire cache. UtilisationPicasso.Builder
pour faire votre propre mise en œuvre. Lorsque vous utilisezwith()
vous utilisez un static singleton instance interne c'est le programme d'installation avec la plupart des valeurs par défaut (la plupart des applications ont besoin les valeurs par défaut de toute façon.)De conserver une référence de votre
Cache
autour de la mise en œuvre et d'interagir directement avec elle. Picasso est destinée à gérer le chargement/décodage et la mise en cache pour vous, mais il n'ya aucune raison vous ne pouvez pas construire autour d'elle.Si vous faites référence sur le cache disque, pas de Picasso ne prend pas en charge l'instant. C'est normal, parce que le disque de la couche de cache est effectuée par la couche HTTP, et ne fait aucune distinction à ce sujet.
Vous pouvez, toutefois, changer le chemin de la mémoire cache du disque. Si vous utilisez OkHttpDownloader puis fournir un fichier différent lorsque vous construisez votre Downloader. De même pour UrlConnectionDownloader vous pourrait l'étendre et de remplacer les
load()
méthode.Alors, permettez-moi obtenir ce droit, vous essayez de MODIFIER l'emplacement où les fichiers sont stockés, au lieu d'être à l'intérieur vous voulez qu'ils soient stockés dans la carte sd? Vous pouvez soit utiliser OkHttpDownloader et lorsque vous créez passer dans l'cacheDir vous voulez, ou si vous utilisez UrlConnectionDownloader l'étendre et de mettre en œuvre la méthode load() similaire à ce que la classe de base. Je mets à jour ma réponse.
Je suis en train de faire en ligne de l'application galerie, qui a plus de 1000 photos.Les fonctions de l'application sont "définir comme papier peint de l'écran d'accueil" et "enregistrer sur la carte SD". chaque fois que l'image est chargée dans imageview,l'utilisateur peut instantanément "définir comme fond d'écran" ou "enregistrer 2 de la carte SD".donc je veux accéder bitmap à partir d'une mémoire cache ou de toute autre méthode.mais la création de nouvelles de mémoire cache et de la récupérer, c'est très dur pour moi.je voudrais accéder à la face interne de la Picasso de l'api. J'ai essayé pendant une semaine.Pls m'aider.
Mais VOUS fournir la
Cache
mise en œuvre de mémoire, et VOUS pouvez fournir leFile
pour le cache DISQUE de l'accès. Si vous passer celles de Picasso, il n'ya aucune raison pourquoi vous ne pouvez pas les garder autour de l'accès des bitmaps pour des Url spécifiques. Je ne vois pas le problème ici, vous pouvez également utiliser Picassoget()
méthode synchrone de charger une image à partir de la mémoire cache (mémoire ou disque) à l'aide de la même clé et l'enregistrer sur la carte SD.+1 pour compenser l'intervenant ci-dessus qui ne veut pas penser
OriginalL'auteur dnkoutso
Picasso qu'il prend en charge la mise en cache en elle et le téléchargement également vous suffit de le placer dans votre Image de la cible vue similaire à Aquery
Selon Le Coin de la Place de l'Ingénierie blog
picasso gérer le téléchargement de la mise en cache en elle-même et de donner son gestionnaire pour l'utilisateur de l'utiliser et de la place de l'image dans l'affichage de l'image
avez-vous traversé cette carré.github.io/picasso ?
ya j'ai fait beaucoup de recherche .mais je ne pouvais pas trouver la solution..
OriginalL'auteur Usman Kurd