ImageView no se muestra en Nexus 5 (Android 6.0)

Tengo un ImageView en un RelativeLayout:

<ImageView android:id="@+id/image" android:src="@drawable/image1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:adjustViewBounds="true" android:scaleType="fitCenter" android:layout_centerVertical="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" /> 

Funciona en muchos dispositivos (teléfonos y tabletas) y emuladores, pero no funciona en Google Nexus 5 con Android 6. La aplicación funciona perfectamente, pero el fondo ImageView no se muestra.

(La imagen está en carpeta dibujable y cambio la imagen con setImageResource)

6 Solutions collect form web for “ImageView no se muestra en Nexus 5 (Android 6.0)”

También tengo el mismo problema, en el que mi imagen se muestra en todo el resto versión Android de Android 6.0. Estaba probando mi aplicación en android 5.0 y android 6.0, esa imagen de tiempo se muestra correctamente en android 5.0, pero en la imagen de Android 6.0 no se carga en Imageview.

He utilizado el src y el fondo ambos la característica pero no conseguí la imagen en Imageview en androide 6.0.

Entonces, Para solucionar este problema he comprobado mi logcat y me quedé debajo de la cadena en logcat.

W / OpenGLRenderer: Bitmap demasiado grande para ser cargado en una textura (3240×5760, máx = 4096×4096)

He buscado esta cadena relacionada y tengo la solución para esto, es Android 6.0 no da permiso para hacer el proceso pesado en UI Thread. Si su imagen es pequeña en tamaño y resolución, puede utilizar src o fondo para cargarla. Pero su imagen es demasiado pesada, entonces Android 6.0 omitir este proceso en UI Thread.

Pero, usted puede solucionar esto por el uso de las soluciones a continuación.

Solución 1 :

Resolverlo mediante el uso de una biblioteca de terceros como Glide para cargar imágenes pesadas. Lo he resuelto con el uso de esto.

Solución 2 :

Añadir una carpeta drawable-nodpi en res , poner la imagen en ella y simplemente usarlo con src en la etiqueta Imageview.

Introduzca aquí la descripción de la imagen

Mueva su imagen a drawable-nodpi en lugar de drawable.

Básicamente, si u poner una imagen en carpeta extraíble se tratará como drawable-mdpi por lo que Android se redimensionará para ajustarse a xxhdpi que es nexo 5, y ya que el mapa de bits se vuelve grande que no mostrará

Las imágenes vienen en todas las formas y tamaños. En muchos casos son más grandes de lo requerido para una interfaz de usuario de aplicación típica (UI). Por ejemplo, la aplicación Galería del sistema muestra las fotos tomadas con la cámara de tus dispositivos Android, que suelen tener una resolución mucho mayor que la densidad de pantalla de tu dispositivo.

Dado que usted está trabajando con memoria limitada, idealmente sólo desea cargar una versión de baja resolución en la memoria. La versión de resolución inferior debe coincidir con el tamaño del componente de interfaz de usuario que lo muestra. Una imagen con una resolución más alta no proporciona ningún beneficio visible, pero aún así ocupa una memoria preciosa e incurre en sobrecarga de rendimiento adicional debido a la escalada adicional.

Muestra una imagen arbitraria, como un icono. La clase ImageView puede cargar imágenes de varias fuentes (como recursos o proveedores de contenido), se encarga de calcular su medida de la imagen para que pueda utilizarse en cualquier gestor de diseño y ofrece varias opciones de visualización, como la escala y el matiz.

  1. Eliminar android:adjustViewBounds="true"

  2. Utilice una imagen orientada de tamaño pequeño (resolución) .

Consejo

Puede utilizar public void setImageResource (int resId)

Establece un dibujable como el contenido de este ImageView.

Esto hace Bitmap lectura y decodificación en el hilo de interfaz de usuario, lo que puede causar un hipo de latencia. Si eso es una preocupación, considere usar setImageDrawable (android.graphics.drawable.Drawable) o setImageBitmap (android.graphics.Bitmap) y BitmapFactory en su lugar.

  ImageView imageView = (ImageView) findViewById(R.id.image); imageView.setImageResource(R.drawable.image1); 

Leer Drawable-hdpi, Drawable-mdpi, Drawable-ldpi Android

Para declarar diferentes diseños y mapas de bits que desea utilizar para las distintas pantallas, debe colocar estos recursos alternativos en directorios / carpetas independientes.

Esto significa que si genera una imagen 200×200 para dispositivos xhdpi, debe generar el mismo recurso en 150×150 para hdpi, 100×100 para mdpi y 75×75 para dispositivos ldpi.

Pude cargar un imageView en API23.

Introduzca aquí la descripción de la imagen

También me enfrentaba a un problema ligeramente diferente en Nexus 5 con 6.0. Era como, la imagen estaba llegando cuando llegué a la página (tener teclado personalizado), pero si presiono en el botón de atrás del dispositivo, la vista de la imagen se ocultaba (Ocultar teclado personalizado).

Así que lo que hice, me quitó el android: adjustViewBounds = "true de la distribución, para mí su funcionamiento bien.Si desea, puede quitar scaletype también.Sin embargo, no sé por qué sucede.Estoy esperando la solución adecuada.

Me había enfrentado problema similar cuando la imagen no se está mostrando en ciertos dispositivos Mi, Vaio. Lo reduje para que el problema de la resolución de la imagen sea demasiado alto para esos dispositivos específicos. Así que utilicé la librería de carga de imágenes de Glide para bajar la resolución de una imagen solamente mientras la abría en la vista de la imagen (de lo contrario el tamaño original se guardó en la tarjeta SD) usando el siguiente código.

 Glide.with(context).load(imagePath).override(1280,720).fitCenter().into(imageView); 
  • ChooserActivity no se encuentra con las pruebas Robotium mientras ChooserActivity se muestra en Nexus 5
  • Controlador inalámbrico Nexus 5 para BCM4339
  • Configuración de AVD a las mismas especificaciones que el dispositivo físico
  • AOSP Construir no arrancar en hammerhead
  • Android - Problemas con el registro de la latencia de inicio
  • Android L + Nexus 5: java.io.FileNotFoundException: open failed: EACCES (permiso denegado)
  • La Android RatingBar tiene umbral "malo" para ciertos dispositivos, ¿arreglarlo?
  • ¿Preferencias compartidas? Javax.crypto.BadPaddingException: bloque de pad corrompido sólo en algunos dispositivos
  • Los datos móviles no funcionan. Android Lollipop en Nexus 5
  • Subir varios archivos en android usando <input type = "file" multiple />
  • Android Debuigging con Luna + Nexus 5 + Android 5 falla
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.