Glide images sometimes are not loading

雨燕双飞 提交于 2019-11-27 15:58:28

the best way to use glide I am explaining here.

//crete this method into your Utils class and call this method wherever you want to use.
//you can set these placeHolder() and error() image static as well. I made it as comment inside this method, then no need to use [placeHolderUrl and errorImageUrl] parameters. remove it from this method.
public static void loadImage(final Activity context, ImageView imageView, String url, int placeHolderUrl, int errorImageUrl) {
    if (context == null || context.isDestroyed()) return;

    //placeHolderUrl=R.drawable.ic_user;
    //errorImageUrl=R.drawable.ic_error;
        Glide.with(context) //passing context 
                .load(getFullUrl(url)) //passing your url to load image.
                .placeholder(placeHolderUrl) //this would be your default image (like default profile or logo etc). it would be loaded at initial time and it will replace with your loaded image once glide successfully load image using url.
                .error(errorImageUrl)//in case of any glide exception or not able to download then this image will be appear . if you won't mention this error() then nothing to worry placeHolder image would be remain as it is.
                .diskCacheStrategy(DiskCacheStrategy.ALL) //using to load into cache then second time it will load fast.
                .animate(R.anim.fade_in) // when image (url) will be loaded by glide then this face in animation help to replace url image in the place of placeHolder (default) image.
                .fitCenter()//this method help to fit image into center of your ImageView 
                .into(imageView); //pass imageView reference to appear the image.
}

fade_in.xml (put it into res->anim)

<set xmlns:android="http://schemas.android.com/apk/res/android">
<!--THIS ANIMATION IS USING FOR FADE IN -->

<alpha
    android:duration="800"
    android:fromAlpha="0.0"
    android:interpolator="@android:anim/decelerate_interpolator"
    android:toAlpha="1.0" />

and finally call this method

from your Activity.

Utils.loadImage(YourClassName.this,mImageView,url,R.drawable.ic_user,R.drawable.ic_error);

OR

from your fragment

Utils.loadImage(getActivity,mImageView,url,R.drawable.ic_user,R.drawable.ic_error);

I have followed everything.

Added .dontAnimate Added all necessary permissions, Internet, Access_Network_State

But nothing works.

Finally I found the reason for image not loading, my Image url doesn't have http or https. I have added http:// in front of my image url and it loads perfectly.

In my case in Glide 4.8.0 the adding the following to ImageView widget into which Glide was loading did the trick, wierd but it works....

android:background="?attr/selectableItemBackgroundBorderless"

Or Also

android:background="@drawable/R.drawable.yourResourceFile

Or Also

android:background="@android:color/transparent"
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!