libreria glide ejemplo developer java android android-glide

java - ejemplo - ¿Cómo cargar una imagen a través de un array de bytes usando Glide?



glide vs picasso (4)

Tengo un contenido de la imagen byte []. Pero cuando los cargo a través de Glide se muestran imágenes rotas. Lo que estoy haciendo se muestra a continuación.

Glide.with(context) .load(imageByteArray) .asBitmap() .placeholder(R.drawable.ic_broken) .into(rowImageView);

imageByteArray se convierte exitosamente a mapa de bits sin usar glide. Así que no hay ningún error con la matriz de bytes de imagen.

Por favor guíame lo que me falta?

También estoy usando la biblioteca de Glide com.github.bumptech.glide: glide: 3.6.1 y la biblioteca de soporte de Android com.android.support:support-v13:23.0.1

Editado

Ok, esto es lo que estoy haciendo.

String imageBytes = "HVao14fpmtHSev3OgsrQNsawkFzXNcY3BsfQla6..."

Esta cadena definida anteriormente es bytes de la imagen real que recibo de la API web.

Estoy convirtiendo esta cadena en una matriz de bytes como esta

public static byte[] hexStringToByteArray(String s) { int len = s.length(); byte[] data = new byte[len / 2]; for (int i = 0; i < len; i += 2) { data[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4) + Character.digit(s.charAt(i+1), 16)); } return data; }

Que estoy aplicando la matriz de bytes resultante "imageByteArray" al código de Glide definido anteriormente.


Digamos que su cadena base64 es

String imageBytes = "HVao14fpmtHSev3OgsrQNsawkFzXNcY3BsfQla6..."

Debería convertir la cadena imageBytes a una matriz de bytes a través de

byte[] imageByteArray = Base64.decode(imageBytes, Base64.DEFAULT);

luego pasa este imageByteArray a Glide.

Glide.with(context) .load(imageByteArray) .asBitmap() .placeholder(R.drawable.ic_broken) .into(rowImageView);


Kotlin forma:

val imageByteArray = Base64.decode(sampleBase64ImageString, Base64.DEFAULT) Glide.with(this).load(imageByteArray).into(imageView)


Puede convertir la Cadena Base64 a imagen usando lo siguiente

Glide.with(context) .load(Base64.decode(base64ImageString, Base64.DEFAULT)) .asBitmap() .placeholder(R.drawable.ic_broken) .into(rowImageView);


Si está obteniendo un error en .asBitmap() simplemente .asBitmap() así

Glide.with(this) .asBitmap() .load(imageAsBytes) .into(image)