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.

2 Solutions collect form web for “ImageView personalizado obtener redimensionado automáticamente en Nexus 7”

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 !!

  • Inserción de contenido con escala escalable personalizada
  • Gif no animado en el listview personalizado
  • ¿Por qué setImageResource no muestra nada?
  • Cómo crear una imageView con parámetros id y src?
  • Personalizable con ImageView
  • Desvanecer el borde de la imagen en una vista de imagen
  • ImageView adjustViewBounds no funciona
  • Android: muestra la imagen desde la tarjeta SD
  • Animación paralela en Imageview
  • Pinch Android para Zoom ImageView
  • Estiramiento de la imagen para adaptarse
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.