¿ImageView.setImageBitmap () recicla el mapa de bits previamente establecido?
Digamos que tengo código de tipo de la siguiente:
protected void onCreate(Bundle bundle){ this.imageView = (ImageView) contentView.findViewById(R.id.imageView); this.setFirstBitmap(); this.setSecondBitmap(); } private setFirstBitmap(){ Bitmap bitmap1 = BitmapFactory.decodeFile(bitmapFile1); imageView.setImageBitmap(bitmap1); } private setSecondBitmap(){ Bitmap bitmap2 = BitmapFactory.decodeFile(bitmapFile2); imageView.setImageBitmap(bitmap2); }
En este caso, ¿será el imageView reciclar bitmap1 o tengo que hacerlo antes de establecer bitmap2?
- No es un archivo DRM, abriendo notmally
- ImageView se estrelló la aplicación
- Problema extraño de memoria al cargar una imagen en un objeto Bitmap
- Voltear una imagen de mapa de bits horizontal o verticalmente
- Cómo cargar un mapa de bits en una vista de imagen con Picasso
- Crear bitmap fuera de memoria en android
- ¿Cómo puedo guardar mi mapa de bits correctamente por segunda vez?
- Recuperar mapa de bits de uri
- Causado por java.lang.NullPointerException: Intenta invocar el método virtual 'int android.graphics.Bitmap.getWidth ()' en una referencia de objeto nulo
- Colocar una vista de imagen como imagen de superposición en la vista previa de la cámara
- Guardar imagen desde WebView
- Xamarin forma la imagen de Android no se está comprimiendo
- ¿Hay lejos para conseguir uri del mapa de bits con hacia fuera excepto él a sdcard?
ImageView no libera automáticamente los mapas de bits
Sucede tal y como lo explica @Vipul
La referencia de bitmap.recycle()
debe liberarse llamando a bitmap.recycle()
Cuando desee asignar otro mapa de bits a ImageView, recicle el anterior llamando
((BitmapDrawable)imageView.getDrawable()).getBitmap().recycle();
Echa un vistazo a esto
Cuando intente decodificar y establecer un segundo mapa de bits, Java le dirá a GC que el primer mapa de bits debe ser reciclado ya que el desarrollador ya no lo está usando.GC lo hará más tarde.
Pero si está haciendo un uso extensivo de mapas de bits (la velocidad de asignación puede ser mayor que la velocidad con la que se recicla mapa de bits), es posible que desee reciclar bitmaps no utilizados lo antes posible. Debe llamar a recycle () cuando haya terminado de usar el mapa de bits. (Recuerde siempre que no intenta reciclar el mapa de bits cuando se muestra en la pantalla.)
- ¿Cómo configurar el MediaRecorder para obtener el mejor efecto de calidad de video?
- Descripción de los atributos XML para paquetes personalizados