Saltar al contenido

Android: Glide no muestra una imagen grande desde la URL

Este team de especialistas luego de ciertos días de investigación y de recopilar de información, dieron con la respuesta, esperamos que resulte de gran utilidad en tu trabajo.

Solución:

He encontrado una solución que funcionó para mi requerimiento. El método override() hace el truco. Establecer números más altos para la resolución de destino parece ser la solución definitiva, pero cuanto más grandes sean los números, más tiempo llevará mostrar las imágenes, por lo que sería prudente implementar un precargador/barra de progreso.

Glide.with(getContext())
    .asBitMap() //[for new glide versions]
    .load(url)
    //.asBitmap()[for older glide versions]
    //.placeholder(R.drawable.default_placeholder)
    .override(1600, 1600) // Can be 2000, 2000
    .into(new BitmapImageViewTarget(imageViewPreview) 
        @Override
        public void onResourceReady(Bitmap  drawable, GlideAnimation anim) 
            super.onResourceReady(drawable, anim);
            progressBar.setVisibility(View.GONE);
        
    );

Indicador de marcador de posición de la barra de progreso/precargador centrado personalizado en el xml de relativo diseño:


Esto está bien porque otro problema relacionado con la carga de imágenes como Bitmap() en Glide no mostrará marcadores de posición para el error y el precargador/indicador de progreso:

Glide.with(getActivity())
    .load(url).asBitmap()
    .placeholder() //<== will simply not work:
    .error() // <== is also useless
    .into(new SimpleTarget() 
@Override
public void onResourceReady(Bitmap resource, GlideAnimation glideAnimation) 
        imageView.setImageBitmap(resource);
    
);

En mi investigación, también probé una solución de Picasso para manejar imágenes de alta calidad:

Picasso.with(getContext())
                .load(url)
                .resize(1500, 0)
                .placeholder(R.drawable.default_placeholder)
                .error(R.drawable.download_error)
                .into(imageViewPreview);

Al final, quedé contento con la versión Glide.

Espero que esto sea útil para cualquiera que pueda estar enfrentando el mismo desafío.

Tuve un problema al cargar la imagen de la URL en TouchImageView usando Glide. Mostraría una pantalla negra. Encontré una solución que funciona así. Pase el ancho y la altura en el método de anulación Glide y después de configurar el mapa de bits, llame a setZoom de TouchImageView con el valor 1.

Aquí está el código completo:

Glide.with('context')
                    .asBitmap()
                    .load('url')
                    .apply(new RequestOptions().override(1600, 1600)) //This is important 
                    .into(new BitmapImageViewTarget('imageview') 
                        @Override
                        public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition transition) 
                            super.onResourceReady(resource, transition);
                            'imageview'.setImageBitmap(resource);
                            'imageview'.setZoom(1); //This is important
                        
                    );

Reseñas y calificaciones

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *