Bitmap demasiado grande para ser cargado en una textura

Tengo en el directorio dibujable un archivo de imagen con el tamaño 960×1440. Cuando la aplicación se inicia, la imagen no se carga como fondo y en el logcat veo:

Bitmap demasiado grande para ser cargado en una textura (2880×4320, máx = 4096×4096)

¿Por qué dice 2880×4320 si la imagen es 960×1440?

El mapa de bits se carga a través de xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/launcher_bg" android:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin"> 

Una imagen en la carpeta /drawable/ sin ninguna especificación se considera que es el "predeterminado", es decir, para 1dp = 1px que es mpdi , entonces porque el dispositivo que está ejecutando es xxhdpi esa imagen se incrementa durante el tiempo de ejecución.

La imagen original puede ser 960×1440, pero la conversión de mdpi a xxhdpi es 3 veces el tamaño, por lo que su 960×1440 se convierte en (3 * 960) x (3 * 1440) = 2880×4320, que es demasiado grande de una textura para aplicar al hardware Vistas aceleradas.

Así que para arreglar que es realmente bastante simple, usted tiene dos opciones:

  1. Mueva su imagen a /drawable-nodpi/ que es simple, reduce el tamaño de .apk, pero los dispositivos finales inferiores podrían tener dificultades para cargar una imagen tan grande.
  2. Crear imágenes escaladas en todas las densidades mdpi , hdpi , xhdpi , xxhdpi para evitar xxhdpi de tiempo de ejecución y tener imágenes más pequeñas en dispositivos antiguos.
  • Uso de la clase EffectFactory en mapa de bits - Android
  • Extremadamente lento nSyncAndDrawFrame al dibujar grandes mapas de bits
  • ¿Cuál es el tamaño óptimo de bitmap para las carpetas ldpi / mdpi / hdpi / xhdpi extraíbles?
  • Tamaño de imagen de mapa de bits de Android
  • Android: ¿cómo administrar el tamaño de mapa de bits al dibujar a pantallas de diferentes tamaños?
  • Cómo guardar una imagen transparente en Android usando ALPHA_8
  • Android - Excepción de memoria
  • Cambiar gradualmente el fondo de gradiente del widget
  • Convertir url de imagen en mapa de bits rápidamente
  • Cómo aumentar el tamaño de imagen de mapa de bits de acuerdo con el tamaño de pantalla del teléfono?
  • Android: error de "intentar utilizar un mapa de bits reciclado" con Bitmaps temporales
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.