2012-03-19 25 views
6

Al cargar un mapa de bits a partir de los recursos de este modo:Recursos de Android: ¿Cómo se manejan los mapas de bits de los recursos manejados en memoria?

iv.setImageResource(R.drawable.image); 
  1. si el mapa de bits se reduce la calidad de ScaleType, ¿todavía guarda todo el mapa de bits original? (Supongo que sí, porque uno podría cambiar el Scaletype sobre la marcha y desearía tener la calidad completa.)
  2. si carga la misma ID de recursos en múltiples ImageView, ¿hay solo un mapa de bits almacenado en la memoria?
  3. ¿sería una buena práctica escanear a través de la jerarquía de vistas y reciclar manualmente estos mapas de bits (extrayendo BitmapDrawable de ImageView) en onDestroy o puedo estar seguro de que el sistema lo hace a tiempo?

Respuesta

0
  1. sí, va a mantener la calidad total.
  2. No, mantendrá un solo objeto.
  3. Lo hará el Sistema. No es necesario que te molestes. Pero, espera hasta que se haya llenado un búfer con los datos para llamar al GC. Una vez que el búfer se llena con datos no deseados, a la vez los objetos se eliminarán de la memoria. Si aún quiere, puede tener cuidado.
+0

Sí, eso es lo que pensé. Encuentro que necesito hacer GC manuales en algunos dispositivos para evitar bloqueos. Todavía no estoy seguro de si esto es solo inherente a estos dispositivos o si estoy haciendo algo fundamentalmente incorrecto. Supongo que hay algo para otra publicación de SO :-) Gracias –

Cuestiones relacionadas