Gracias a Schermvlieger por preguntar this pregunta sobre anddev.org,uso óptimo de BitmapFactory.Options.inSampleSize para la velocidad
sólo estoy copiando a su pregunta de manera que nadie respondió en el otro sitio y también estoy enfrentando el mismo problema.
Me preguntaba cuál sería el uso óptimo de BitmapFactory.Options.inSampleSize
con respecto a la velocidad de visualización de la imagen.
La documentación menciona el uso de valores que son una potencia de 2, por lo que estoy trabajando con 2, 4, 8, 16, etc.
Las cosas que me gustaría saber son:
- ¿Debo aplicar un nuevo muestreo hacia abajo al tamaño más pequeño que sigue siendo más grande que la resolución de la pantalla, o debería muestrear al tamaño suficiente para evitar un
OutOfMemoryError
? - ¿Cómo se calcularía el tamaño máximo de una imagen que aún podría mostrarse sin quedarse sin memoria? ¿La profundidad de color de la imagen también juega un rol y la profundidad de la pantalla?
- Es eficiente para mostrar imágenes a través de dos mecanismos (
BitmapFactory
para archivos de gran tamaño,setImageURI()
para los más pequeños) Estoy usando unImageSwitcher
por cierto. - ¿Ayudaría crear el
Bitmap
,BitmapFactory.Options
yinTempStorage
al principio de la aplicación o crearlos solo sobre la marcha, cuando sea necesario?
Cuando dice que "escalar imágenes en el momento del dibujo es extremadamente caro", ¿esto incluye options.inSampleSize también? – kape123
inSampleSize se usa para escalar imágenes en tiempo de carga, no en tiempo de dibujado. Es una muy buena forma de preseleccionar imágenes. –
Estamos usando ARGB_8888, que está produciendo una imagen muy borrosa en Samsung Galaxy Note 2, pero funcionó bien en otro dispositivo, actívelo ARGB_4444 está bloqueando la aplicación en Samsung Galaxy Note 2 y Pad 3110, debido a outOfMemoryError. ¿Puedes ayudarnos a resolver esto? –