¿Cómo tratar con Picasso OutOfMemoryError?

Quiero mostrar un ViewPager con ~ 50 páginas, cada una con una imagen diferente. Usando Picasso, las primeras 20-25 páginas funcionan perfectamente. Sin embargo, en ese momento me sale un OutOfMemoryError , y no hay imágenes de carga en absoluto:

 Throwing OutOfMemoryError "Failed to allocate a 7477932 byte allocation with 1932496 free bytes" 

Estoy usando el siguiente código en mi PagerAdapter :

 @Override public Object instantiateItem(final ViewGroup container, final int position) { View view = getView(); Picasso picasso = getImageLoader(mContext); picasso.load(getUrl(position)).fit().into((ImageView) view.findViewById(R.id.imageview)); container.addView(view); return view; } @Override public void destroyItem(final ViewGroup container, final int position, final Object object) { container.removeView((View) object); } 

¿Qué puedo hacer para evitar esto?

He encontrado este problema .

Algunos puntos señalados:

  • Utilice skipMemoryCache()
  • Utilice builder.executor(Executors.newSingleThreadExecutor());
  • Utilice una instancia de Picasso : no cree una nueva instancia utilizando Picasso.Builder cada vez.

Me las arreglé para arreglar mi problema con el último.

Esta pregunta es alta clasificado en Google hits, por lo que estoy añadiendo mi solución a este problema.

La adición de .fit() resolvió el problema para mí. Estoy cargando con éxito imágenes con código inferior.

 picasso.load(PartyUtil.getPartyIconResourceFromFullPartyName(parties.get(position))) .fit() .into(holder.icon); 

Eliminar .fit() hace que mi aplicación lance una OutOfMemoryException .

  • ¿Cómo informar a Picasso de que la imagen del enlace ha cambiado?
  • Memoria de Android y cliente de caché de caché http utilizando Picasso
  • Dibujar la imagen redondeada con fondo blanco utilizando Picasso
  • ¿Cómo obtengo el mapa de bits resultante de una imagen después de haber sido redimensionado en una vista de imagen con picasso
  • Imagen parpadeando mientras se desplaza en RecyclerView
  • Cómo cargar diseño de fondo utilizando Picasso
  • Compruebe si la imagen existe en Cache Picasso
  • Adición de marcadores de url con Picasso
  • Invalidar caché en Picasso
  • ¿Cómo descargar la imagen más rápido en android Volley / Picasso / Glide cualquier otro?
  • Problemas con la recolección de basura y Picasso
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.