Reciclaje de bitmaps
Estoy trabajando en un proyecto que implica operaciones en mapas de bits. Porque no quiero tener OutofMemoryError estoy tratando de reciclar cada uno de los mapas de bits no utilizados. Desafortunadamente, he reciclado demasiado y he intentado usar un error de mapa de bits reciclado.
Estoy usando:
- Memoria interna llena de imágenes, probablemente causada por Bitmap.compress (formato, int, flujo)
- Cómo limpiar los recursos de mapa de bits
- Cómo evitar createBitmap () bloqueo en android
- Tratamiento de mapas de bits grandes (mosaico de un pequeño mapa de bits para crear papel tapiz)
- OutOfMemoryError cuando se utiliza Gson para analizar una gran respuesta JSON
Bitmap.createBitmap(bmp, x,y,w,h, matrix, false); Bitmap.createScaledBitmap(bmp, w, h,true);
¿Debo reciclar bmp después de este método o es reciclado por ellos? Me gusta:
Bitmap newBitmap = Bitmap.createBitmap(bmp, x,y,w,h, matrix, false); bmp.recycle();
¿Puedo después de que imageView.setImageBitmap () recicle uno que anteriormente se usó aquí? P.ej
myImageView.setImageBitmap(myBitmap); myImageView.setImageBitmap(newBitmap); myBitmap.recycle();
Gracias por ayudar.
- El servidor NanoHttpd no puede transmitir videos grandes en android
- Fuera de la memoria Picasso Lib
- Servicio remoto, pérdidas de actividad al girar
- Cómo despedir AlertDialog.Builder?
- Leyendo LeakCanary Log
- Cómo liberar memoria en android para evitar fugas de memoria
- ¿Cómo entender que muestra LeakCanary?
- Problema de memoria de Viewview de Viewpager
Sólo debe reciclar un mapa de bits cuando ya no lo necesite. Sin embargo, necesitas un mapa de bits cuando quieras mostrarlo . Si no desea mostrarlo, puede reciclar un mapa de bits.
Usted sólo recicla mapas de bits una vez que haya terminado con ellos y está seguro de que nunca tendrá que utilizar los datos en ellos de nuevo. No es un método mágico que puedes usar en cualquier lugar que te guste para darte más memoria al tratar con mapas de bits.
Cuando quiero escalar el mapa de bits entonces uso la misma referencia:
Bitmap bmp = Bitmap.createBitmap(bmp, x,y,w,h, matrix, false);
Cuando el primer objeto de mapa de bits pierde su referencia "bmp" se quita por GC (recolector de basura) por lo que no es necesario recyle nada. En cuanto a la vista de la imagen que sólo hace referencia a su fuente a "newBitmap" no crea su propia.
- Diferencia entre bind e injectionView en butterknife
- No se puede importar com.google.api.client.json.jackson.JacksonFactory