¿Es posible descargar imágenes de la memoria caché en picasso?

Yo estaba usando UniversalImageDownloader para mi app.in UIL podemos guardar imágenes de la memoria caché.

  File cachedImage = ImageLoader.getInstance().getDiscCache().get(imageUrl); if (cachedImage.exists()) {// code for save 2 sd } 

¿Es posible en picasso?

Hay un método privado en Picasso –

 Bitmap quickMemoryCacheCheck(String key) { Bitmap cached = cache.get(key); if (cached != null) { stats.dispatchCacheHit(); } else { stats.dispatchCacheMiss(); } return cached; } 

Modifique la fuente según su necesidad.

Puedes hacer esto, usar OkHttp & Picasso:

 public class APP extends Application{ public static OkHttpDownloader okHttpDownloader; @Override public void onCreate() { super.onCreate(); Picasso.Builder b = new Picasso.Builder(this); okHttpDownloader = new OkHttpDownloader(this); b.downloader(okHttpDownloader); Picasso.setSingletonInstance(b.build()); } } 

A continuación, obtener el archivo de caché local de OkHttp:

 Downloader.Response res = APP.okHttpDownloader.load(Uri.parse(your image Url),0); Log.i(TAG,"Get From DISK: " + res.isCached() ); storeImageFile(res.getInputStream()); 

Puede obtener bitmap desde ImangeView onSuccess () callback

 Picasso.with(context).load(path).into(imageView, new Callback(){ public void onSuccess() { Bitmap bitmap = ((BitmapDrawable)imageView.getDrawable()).getBitmap(); //save bitmap to sdcard } public void onError() {} } 

ADVERTENCIA: El mapa de bits guardado puede ser diferente al mapa de bits original.

Debajo del fragmento de código primero hará que Picasso cargue la imagen de la caché, si falla, a continuación, descargar y mostrar la imagen en imageView

Puede depurar el rendimiento de la memoria con

Picasso.with (appContext) .setIndicatorsEnabled (true);

  • Verde (memoria, mejor rendimiento)
  • Azul (disco, buen rendimiento)
  • Rojo (red, peor rendimiento).

      //Debugging memory performance https://futurestud.io/tutorials/picasso-cache-indicators-logging-stats //TODO remove on deployment Picasso.with(appContext).setIndicatorsEnabled(true); //Try to load image from cache Picasso.with(appContext) .load(imageUrl) .networkPolicy(NetworkPolicy.OFFLINE).placeholder(R.drawable.ic_launcher) .placeholder(R.drawable.ic_launcher) .resize(100, 100) .error(R.drawable.ic_drawer) .into(markerImageView, new Callback() { @Override public void onSuccess() { } @Override public void onError() { // Try online if cache failed Picasso.with(appContext) .load(imageUrl) .placeholder(R.drawable.ic_launcher) .resize(100, 100) .error(R.drawable.ic_drawer) .into(markerImageView); } }); 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.