trucos optimizar ocultas nougat notificaciones iconos funciones estado color cambiar barra android layout android-n android-7.0-nougat

ocultas - optimizar android 7



"Lienzo: tratando de dibujar un mapa de bits demasiado grande" cuando Android N Display Size establece un tamaƱo mayor que Small (9)

Tengo una aplicación publicada que se bloquea al inicio en Android N cuando la configuración del sistema operativo Display size recientemente introducida se establece 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 bonita imagen de fondo grande. La imagen en cuestión es 2048x1066 y está en mi directorio de dibujos genéricos, así que no importa la densidad, esta imagen se utilizará.

Todo funciona bien cuando la configuración de Display size es Small . Pero cuando subo a Default , deja de funcionar. Si luego cambio la imagen por una más pequeña, funciona en Default , pero si subo a Large , deja de funcionar nuevamente.

Supongo que ajustar el 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 lo que se supone que debo hacer aquí. Si pongo imágenes progresivamente más pequeñas para resoluciones progresivamente más altas, no se verá bien en pantallas realmente grandes. ¿O no estoy entendiendo algo?

Cualquier puntero sería muy apreciado.



En mi caso, resolví el problema después de agregar android:hardwareAccelerated="false" en la applicationg del archivo de manifiesto.



Los archivos de iconos son demasiado grandes para que Android se cargue de manera eficiente y sin problemas. Android reconoce esto con sus algoritmos inteligentes.

Puede cambiar el tamaño de los archivos de iconos con Final Android Resizer por asystat. Cambie su tamaño a "xhdpi" o inferior.

Coloque las fotos redimensionadas en dibujables o sobrescriba sobre los archivos de iconos grandes existentes.

Entonces, ya terminaste.


Mueva su imagen en el dibujo a mipmap-xxhdpi. Su imagen está en formato de mapa de bits, por lo que debe colocar su imagen en la carpeta mipmap, entonces funcionará


No sé si ayudaría a alguien, pero lo dejaré aquí. En mi caso, el problema solo estaba en los dispositivos Sumsung con Android 7, y el problema estaba en las proporciones de la pantalla de inicio. después de cambiar la altura a 1024 px, todo funciona bien


si está usando deslizamiento y está cargando 1k de imágenes a la vez o algunas imágenes, entonces es cuestión de deslizamiento o lo que sea que esté haciendo para configurar la vista de imagen. puede resolverlo simplemente aplicando el tipo de escala en deslizamiento.


si usas Picasso cambia a Glide así.

Eliminar picasso

Picasso.get().load(Uri.parse("url")).into(imageView)

Cambiar deslizamiento

Glide.with(context).load("url").into(imageView)

Más eficiente


En mi caso, mover el mapa de bits de bienvenida (alta resolución) de drawable a drawable-xxhdpi fue la solución.

Yo tuve el mismo problema. No sospeché que mi pantalla de inicio era el problema, ya que se muestra cuando se inicia la aplicación, pero resultó que la pantalla de inicio es el problema.

La pantalla de bienvenida en mi caso tiene una resolución xxhdpi, y se colocó por error en la carpeta dibujable , en lugar de drawable-xxhdpi . Esto hizo que Android supusiera que la pantalla de inicio tenía una resolución mdpi y escalaba la imagen a 3 * 3 veces su tamaño requerido e intentaba crear un mapa de bits.