ImageView personalizado obtener redimensionado automáticamente en Nexus 7

Tengo una imagen personalizada que cubre toda la pantalla. La imagen se obtiene de una de las carpetas desplegables, drawable-hdpi, drawable-xhdpi, drawable-sw600dp etc. y hay imágenes separadas para cada cubo de densidad.

Hasta ahora, la aplicación funciona bien en los dispositivos xhdpi y hdpi, el problema se produce cuando lo pruebo en un Nexus 7. La imagen almacenada en la carpeta sw600dp tiene un tamaño de 1600×1600 y debería ser suficiente para dibujar directamente en la pantalla (sin escala ), Sin embargo, cuando ejecuto la aplicación, la pantalla resulta ser completamente en blanco y me sale la siguiente advertencia:

03-04 16: 25: 46.338: W / OpenGLRenderer (25457): mapa de bits demasiado grande para ser cargado en una textura (2130×2130, máx = 2048 x 2048)

Por alguna razón, el mapa de bits de 1600×1600 se escala a 2130×2130 aunque no lo he escalado manualmente en ninguna parte (no hay escala de matriz o scaleX / scaleY aplicado)

¿Alguna idea de por qué esto podría estar sucediendo? Proporcione una solución junto con la explicación de por qué esto podría estar sucediendo.

Dado que Nexus 7 es tvdpi, escala cada imagen a 1,33 del valor original. Así 1600 se convierte (1600 * 1.33) = ~ 2130. No lo mostrará desde la carpeta sw600dp.

Más información: – http://developer.android.com/guide/practices/screens_support.html

Puede utilizar la misma imagen que está utilizando para cada otra tableta de 7 pulgadas (es decir, de resolución 1024 * 600).

Quiero compartir alguna información sobre el error que estás recibiendo ..

Según Romain Guy (ingeniero de framework de Android) :

Cuando se utiliza la aceleración de hardware, hay un límite para el tamaño de una textura. Cuando se procesa un mapa de bits, primero hay que cargarlo a una textura de OpenGL. Tu mapa de bits resulta ser más grande que el tamaño máximo de textura en Xoom (2048×2048.) Necesitas usar un mapa de bits más pequeño o dividirlo en varios mapas de bits.

Otros vínculos de SO pueden serle de ayuda: haga clic aquí1 , haga clic aquí2

Git: haga clic aquí

Actualización: Esta respuesta sólo indica por qué se está produciendo un error (debido a que el límite de tamaño de textura) no es una respuesta completa de por qué 1600×1600 mapa de bits se ajusta a 2130×2130 !!

  • Cómo poner un botón entre dos diseños
  • cómo rotar el mapa de bits en android en el punto central utilizando matriz
  • ¿Cómo preparo imágenes para todas las resoluciones de Android?
  • Android: Mostrar la imagen en la vista de imagen por SimpleAdapter
  • ¿Cómo subir la imagen a Parse en android?
  • Despliegue y alineación de la distribución relativa de Android
  • Alpha-gradient en Android
  • Imagen de alta resolución - OutOfMemoryError
  • Calidad de mapa de bits Horrible ImageView?
  • HorizontalScrollView o Carrousel?
  • Personalizable con ImageView
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.