android - ejemplo - Glide no carga la imagen real y se pega con el marcador de posición
glide vs picasso (5)
Compruebe si ha agregado permiso de Internet en el manifiesto:
<uses-permission android:name="android.permission.INTERNET"/>
Glide no dispara la excepción si no hay conectividad a Internet.
Tengo una imagen de carga bastante básica del código de línea del servidor:
Glide.with(view.getContext()).load(url).placeholder(R.drawable.default_profile).into(view);
Por alguna razón, siempre estoy atrapado con el marcador de posición que se muestra y nunca la imagen real!
Me he asegurado de que se apruebe una url válida y funcional. Y, si uso el mismo código sin el marcador de posición, funciona bien
Glide.with(view.getContext()).load(url).into(view);
¿Alguna idea de por qué?
Parece extraño, pero lo único que podría adivinar es Tu URL es válida como ya dijiste. Su control remoto se está descargando, incluso se está aplicando en su vista de imagen, pero su marcador de posición de alguna manera lo está ocultando. Glide tiene algunos errores relacionados con cosas placeholder.
Mi sugerencia sería probar a continuación:
Glide.with(view.getContext()).load(url).
placeholder(R.drawable.default_profile).fitCenter().into(view);
El truco es que el marcador de posición se configura a través de setImageDrawable()
para que ImageView
lo muestre como siempre, pero le dices a Glide que use el fitCenter
explícitamente, que se ajustará a la imagen cargada dentro del tamaño de ImageView
mediante Transformation y luego configurarlo a través de setImageDrawable()
. Como la imagen ajustada es perfecta, el centro dibujará la imagen cubriendo todo el área de la vista.
Darle una oportunidad.
Si alguien se encuentra con esto en el futuro, es posible que deba 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.
Usa ProgressBar como cargando 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);
intente agregar .dontAnimate()
También lo causó TransitionDrawable y parece que después de desplazarse 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 ti