Tengo una aplicación publicada que se bloquea al inicio en Android N cuando la Display size
configuración del sistema operativo recién introducida está configurada en un valor demasiado grande.
Cuando miro en logcat, veo el siguiente mensaje:
java.lang.RuntimeException: Canvas: trying to draw too large(106,975,232 bytes) bitmap.
He rastreado el problema hasta un ImageView en mi primera actividad que muestra una imagen de fondo grande y agradable. La imagen en cuestión es 2048x1066 y está en mi drawables
directorio genérico , por lo que no importa la densidad, se utilizará esta imagen.
Todo funciona bien cuando el Display size
entorno es Small
. Pero cuando subo Default
, deja de funcionar. Si luego cambio la imagen por una más pequeña, funciona Default
, pero si subo Large
, deja de funcionar nuevamente.
Supongo que el ajuste Display size
hace que su dispositivo se comporte como un dispositivo físicamente más pequeño con una mayor densidad de píxeles. Pero no entiendo qué se supone que debo hacer aquí. Si coloco imágenes cada vez más pequeñas para resoluciones progresivamente más altas, no se verá bien en pantallas realmente grandes. ¿O no estoy entendiendo algo?
Cualquier sugerencia será muy apreciada.
res/drawable/
es un sinónimo deres/drawable-mdpi/
. Si desea que la imagen no se escale según la densidad, useres/drawable-nodpi/
ores/drawable-anydpi/
.