Glide no cargando imagen real y pegado con marcador de posición
Tengo una imagen bastante básica de la carga del código de la línea del servidor:
Glide.with(view.getContext()).load(url).placeholder(R.drawable.default_profile).into(view);
Por alguna razón, siempre estoy atascado con el marcador de posición que se muestra y nunca la imagen real!
Me he asegurado de que se esté pasando una URL válida y de trabajo. Y, si utilizo el mismo código sin el marcador de posición funciona bien
Glide.with(view.getContext()).load(url).into(view);
¿Alguna idea por qué?
Intenta agregar .dontAnimate()
También causó por TransitionDrawable y parece que así que después de scroll no hay animación porque está en caché. El código correcto es
Glide.with(view.getContext()).load(url).placeholder(R.drawable.default_profile).dontAnimate().into(view);
Espero ser útil para usted
Compruebe si ha agregado permiso de Internet en el manifiesto:
<uses-permission android:name="android.permission.INTERNET"/>
Glide no dispara una excepción si no hay conexión a Internet.
Utilice ProgressBar como carga gif
Glide.with(context). load(url) .listener(new RequestListener<String, GlideDrawable>() { @Override public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) { progressBar.setVisibility(View.GONE); return false; } @Override public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) { progressBar.setVisibility(View.GONE); return false; } }) .crossFade(1000) .into(imageView);
Parece extraño, pero la única cosa que podría adivinar es su URL es válida como ya lo dijo. El control remoto se descarga incluso se aplica en la vista de imagen, pero su marcador de posición es de alguna manera ocultarlo. Glide tiene algunos errores relacionados con las cosas reservadas.
Mi sugerencia sería probar a continuación:
Glide.with(view.getContext()).load(url). placeholder(R.drawable.default_profile).fitCenter().into(view);
Así que el truco es el marcador de posición se establece a través de setImageDrawable()
para que el ImageView
sólo se mostrará como de costumbre, pero le dice a Glide para utilizar el fitCenter
explícitamente que se ajuste a la imagen cargada muy bien dentro de la ImageView
's establecido el tamaño a través de una transformación y luego setImageDrawable()
través de setImageDrawable()
. Dado que la imagen ajustada es un ajuste perfecto, el centro sólo dibujará la imagen que cubra todo el área de la vista.
Darle una oportunidad.
Si alguien se encuentra con esto en el futuro puede que tenga que agregar
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
No estoy seguro de la razón exacta de este cambio, sin embargo mi código no funcionó sin ese permiso, y ahora lo hace con él.